0
我使用「WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;」在我的plsql腳本中在shell腳本中使用它們。這工作得很好:如何從sqlplus中返回錯誤代碼以防出現plsql編譯錯誤
echo exit | sqlplus user/[email protected] @normal.sql && echo "boo"
執行 「噓」 腳本並打印這工作太細:
echo exit | sqlplus user/[email protected] @bad.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編譯錯誤代碼?
謝謝,這是我在想,但我希望有是一個更好的辦法。 –
而不是解析「顯示錯誤」的輸出,最好在sql中解析user_errors或all_errors表的內容,如下所示:https://forums.oracle.com/forums/thread.jspa?threadID=692710(那裏還有另一個 - 第三個解決方案) –