"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"
は、これはあまりにも正常に動作するスクリプトや版画 "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;
- エラーコードが返されず、「booが」印刷されます。 sqlplusスクリプトからplsqslコンパイルエラーコードを返すにはどうすればよいですか?
おかげで、それは私が考えていたものですが、私はより良い方法があるで望みました。 –
"show errors"の出力を解析する代わりに、ここで示唆しているように、sqlでuser_errorsまたはall_errorsテーブルの内容を解析するほうがよい場合があります。https://forums.oracle.com/forums/thread.jspa?threadID=692710(そこに示唆された別の第3の解決法もある) –