oracle內置函數sqlcode和sqlerrm是特別用在others處理器中,分別用來返回oracle的錯誤代碼和錯誤消息。
others處理器應該是異常處理塊中的最后的異常處理器,因為它是用來捕獲除了別的異常處理器處理以外的所有的oracle異常,所以在程序的最外層使用一個others處理器的話,將可以確保所有的錯誤都會被檢測到。
在一個內在的異常中,sqlcode返回oracle錯誤的序號,而sqlerrm返回的是相應的錯誤消息,錯誤消息首先顯示的是錯誤代碼。sqlcode返回的是負數,除非oracle的錯誤為“ora-01403:no data found”(譯:ora-01403:未找到數據),當oracle錯誤為“ora-01403:no data found”時,其對應的sqlcode為+100。對于用戶自定義的異常,sqlcode返回的是+1,而sqlerrm返回的是user-defined exception。
一個oracle的錯誤消息最多只能包含512個字節的錯誤代碼。如果沒有異常被觸發,則sqlcode返回0,sqlerrm返回“ora-0000:normal, successful completion”。
新聞熱點
疑難解答