Oracle 中異常處理函式 - SQLCODE和SQLERRM

tolywang發表於2011-11-09


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”。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-712466/,如需轉載,請註明出處,否則將追究法律責任。

相關文章