PL/SQL 08 异常 exception

Posted john2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PL/SQL 08 异常 exception相关的知识,希望对你有一定的参考价值。

--PL/SQL错误
  编译时
  运行时

--运行时的出错处理
  EXCEPTION


--异常处理块
DECLARE
 …
BEGIN
 …
EXCEPTION
 WHEN OTHERS THEN
  handler_error(…);
END;


--用户自定义的异常
DECLARE
 e_TooManyStudents EXCEPTION;
 …
BEGIN
 …
 RAISE e_TooManyStudents;
 …
EXCEPTION
 WHEN e_TooManyStudents THEN
  …
END;


--预定义的ORACLE异常
ORA-0001
  DUP_VAL_ON_INDEX
ORA-0051
  TIMEOUT_ON_RESOURCE
ORA-1001
  INVALID_CURSOR

ORA-6533
  SUBSCRIPT_BEYOND_COUNT


--触发异常
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;

































































以上是关于PL/SQL 08 异常 exception的主要内容,如果未能解决你的问题,请参考以下文章

pl sql异常信息

异常后停止 PL/SQL 代码(PL/SQL、ORACLE)

PL/SQL 异常

即使在 PL/SQL 中发生异常,也继续循环读取 excel 行

生产环境加密异常

Oracle Pl/Sql Ora 和 Pls 异常