我試圖找出是否有辦法獲取異常的類型,而不明確實現when
子句中的所有predefined Exceptions。oracle pl/sql將異常類型傳遞到函數
我寫了一個函數來發送郵件。我在PL/SQL過程的when others
子句中調用了這個函數,有沒有辦法將類型作爲varchar或類型傳遞?
將異常消息也作爲參數傳遞是非常有用的。
問候
我試圖找出是否有辦法獲取異常的類型,而不明確實現when
子句中的所有predefined Exceptions。oracle pl/sql將異常類型傳遞到函數
我寫了一個函數來發送郵件。我在PL/SQL過程的when others
子句中調用了這個函數,有沒有辦法將類型作爲varchar或類型傳遞?
將異常消息也作爲參數傳遞是非常有用的。
問候
如Mat在他comment建議,一個可以簡單地使用變量SQLCODE
和SQLERRM
來檢索異常。它本身不檢索異常的類型,但它肯定提供了足夠的信息來解決問題。 Oracle Documentation
搜索在Oracle文檔:DBMS_UTILITY.FORMAT_ERROR_STACK
有幾種辦法,我用SQLERRM
EXCEPTION
WHEN CANNOTPROCEED THEN
ORA_ERROR:=SQLERRM;
ROLLBACK;
insert into LOG_TABLE (LOG_ERROR) Values();
commit;
https://docs.oracle.com/cloud/latest/db112/LNPLS/errors.htm#LNPLS848 – Mat
謝謝,測試它,並正常工作。請從中得出答案 – k4yaman