"WHEREEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;"을 사용합니다. 내 plsql 스크립트에서 쉘 스크립트에서 그들을 사용합니다. 이 잘 작동 :sqlplus에서 plsql 컴파일 오류가 발생했을 때 오류 코드를 반환하는 방법
echo exit | sqlplus user/[email protected] @bad.sql && echo "boo"
"는 소리"가 인쇄되지 않습니다 :
echo exit | sqlplus user/[email protected] @normal.sql && echo "boo"
이 잘 너무 작동 "우우"스크립트 및 인쇄를 실행합니다.
그러나 나쁜 경우입니다 :
분명히 잘못WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
create or replace
PACKAGE TESTING
IS
function boo (co_id number) return varchar2;
END;
/
create or replace
PACKAGE BODY TESTING
is
end;
- 오류 코드가 반환되지 않으며 "우우"는 인쇄됩니다. sqlplus 스크립트에서 plsqsl 컴파일 오류 코드를 반환하려면 어떻게해야합니까?
감사합니다, 그게 내가 생각하고 있었는지,하지만 난 더 나은 방법이입니다 희망했다. –
"show errors"의 출력을 구문 분석하는 대신 여기에서 제안 된 것처럼 SQL에서 user_errors 또는 all_errors 테이블의 내용을 구문 분석하는 것이 좋습니다. https://forums.oracle.com/forums/thread.jspa?threadID=692710 (거기에 제안 된 또 다른 세 번째 해결책이있다) –