PL/SQL 08 异常 exception
--PL/SQL錯(cuò)誤
? 編譯時(shí)
? 運(yùn)行時(shí)
--運(yùn)行時(shí)的出錯(cuò)處理
? EXCEPTION
--異常處理塊
DECLARE
?…
BEGIN
?…
EXCEPTION
?WHEN OTHERS THEN
??handler_error(…);
END;
--用戶自定義的異常
DECLARE
?e_TooManyStudents EXCEPTION;
?…
BEGIN
?…
?RAISE e_TooManyStudents;
?…
EXCEPTION
?WHEN e_TooManyStudents THEN
??…
END;
--預(yù)定義的ORACLE異常
ORA-0001
? DUP_VAL_ON_INDEX
ORA-0051
? TIMEOUT_ON_RESOURCE
ORA-1001
? INVALID_CURSOR
…
ORA-6533
? SUBSCRIPT_BEYOND_COUNT
--觸發(fā)異常
RAISE exception_variable
DECLARE
? A EXCEPTION
BEGIN
? …
? RAISE A;
? …
? EXCEPTION
??? WHEN A THEN
??? …
END;
--處理異常
EXCEPTION
? WHEN e_TooManyStudents THEN
??? INSERT INTO log_file(info)?
??? VALUES(‘Major 1100 has ‘ || v_CurStudents || ’ max aloowed is ‘ || v_Max);
END;
--處理所有的異常
EXCEPTION
? WHEN e_TooManyStudents THEN
??? …
? WHEN OTHERS THEN
??? v_ErrCode := SQLCODE;
??? v_ErrText := SUBSTR(SQLERRM, 1, 200);
??? INSERT INTO log_file(code, message, info)
??? VALUES(v_ErrCode, v_ErrText, ‘ORACLE Error’);
END;
轉(zhuǎn)載于:https://www.cnblogs.com/john2017/p/6364517.html
總結(jié)
以上是生活随笔為你收集整理的PL/SQL 08 异常 exception的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dotnet Core
- 下一篇: Excel 一键上传到数据库