Oracle PL/SQL開發基礎(第三十四彈:RAISE_APPLICATION_ERROR)
阿新 • • 發佈:2019-02-12
RAISE_APPLICATION_ERROR
在子程式內部使用時,能從儲存子程式中丟擲自定義的錯誤訊息。這樣就能將錯誤報告給應用程式而避免範圍未捕獲異常。
語法如下:
RAISE_APPLICATION_ERROR(error_number, error_message, [keep_errors]);
error_number
是範圍在-20000到-20999之間的負整數,error_message
是最大長度為2048位元組的字串,keep_errors
是一個可選的布林值,True表示新的錯誤將被新增到已經丟擲的錯誤列表中,False表示新的錯誤將替換當前的錯誤列表,預設為False。
RAISE_APPLICATION_ERROR
看一個例子:
CRAETE OR REPLACE PROCEDURE registeremployee(...)
AS
...
BEGIN
IF ... THEN
RAISE_APPLICATION_ERROR(-20000, '員工編號不能為空');
ELSIF ... THEN
RAISE_APPLICATION_ERROR(-20001, '員工已存在');
END IF;
...
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20003, '插入資料時出現錯誤!異常編碼:'
|| SQLCODE
|| '異常描述:'
|| SQLERRM);
END;
別的子程式或語句塊呼叫這個過程時,如果有相應的異常,就會像普通的Oracle錯誤一樣被捕獲。