內置函數SQLCODE和SQLERRM的使用
阿新 • • 發佈:2018-05-29
代碼 ber strong 成功 exc 操作 font c程序 bms
在我們寫proc程序中經常要有錯誤處理,在錯誤處理中我們經常要輸出錯誤信息來給幫助我們分析和解決錯誤原因,從而更正數據。這時候就會用到SQLCODE和SQLERRM.
SQLCode:數據庫操作的返回碼,其中0表示成功;-1表示失敗;100表示沒有檢索到數據;+1表示用戶自定義異常。
sqlerrm函數:返回指定錯誤代碼的錯誤信息。
一個Oracle的錯誤消息最多只能包含512個字節的錯誤代碼。如果沒有異常被觸發,則SQLCODE返回0,SQLERRM返回“ORA-0000:normal, successful completion”。
sqlerrm如何使用?
sqlcode和sqlerrm是不能直接在sql語句中使用,必須先將其賦給變量後,才能在sql語句中使用 ,如下:
DECLARE
......
v_trans_error NUMBER;
v_trans_error_msg VARCHAR2(512);
......
BEGIN
......
EXCEPTION
......
WHEN OTHERS THEN
v_trans_error := SQLCODE;
v_trans_error_msg := SUBSTR(SQLERRM,1,512);
DBMS_OUTPUT.PUT_LINE(v_trans_error || ‘---‘ || v_trans_error_msg);
......
END;
內置函數SQLCODE和SQLERRM的使用