2017-09-13 56 views
0

我試圖找出是否有辦法獲取異常的類型,而不明確實現when子句中的所有predefined Exceptionsoracle pl/sql將異常類型傳遞到函數

我寫了一個函數來發送郵件。我在PL/SQL過程的when others子句中調用了這個函數,有沒有辦法將類型作爲varchar或類型傳遞?
將異常消息也作爲參數傳遞是非常有用的。

問候

+1

https://docs.oracle.com/cloud/latest/db112/LNPLS/errors.htm#LNPLS848 – Mat

+0

謝謝,測試它,並正常工作。請從中得出答案 – k4yaman

回答

0

Mat在他comment建議,一個可以簡單地使用變量SQLCODESQLERRM來檢索異常。它本身不檢索異常的類型,但它肯定提供了足夠的信息來解決問題。 Oracle Documentation

0

搜索在Oracle文檔:DBMS_UTILITY.FORMAT_ERROR_STACK

0

有幾種辦法,我用SQLERRM

EXCEPTION 
    WHEN CANNOTPROCEED THEN 


     ORA_ERROR:=SQLERRM; 

     ROLLBACK; 
insert into LOG_TABLE (LOG_ERROR) Values(); 
commit;