Oracle中的sqlerrm和sqlcode
sqlcode:sqlcode函數用來返回pl/sql執行內部異常代碼。其中0表示成功;-1表示失敗;100表示沒有檢索到數據;+1表示用戶自定義異常。
語法:sqlcode
sqlerrm:sqlerrm函數用來返回指定錯誤代碼的錯誤信息。
語法:SQLERRM [(error_number)]
一個Oracle的錯誤動靜最多只能包孕512個字節的錯誤代碼。
如果沒有異常被觸發,則SQLCODE返回0,SQLERRM返回“ORA-0000:normal, successful completion”。
如: SQLCODE=-100 -> SQLERRM='no_data_found'
SQLCODE=0 -> SQLERRM='normal, successfual completion'
sqlcode和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;