ITPub博客

首页 > 数据库 > Oracle > PL/SQL 08 异常 exception

PL/SQL 08 异常 exception

原创 Oracle 作者:j04212 时间:2014-02-12 17:38:27 0 删除 编辑

--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;

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27633655/viewspace-1080408/,如需转载,请注明出处,否则将追究法律责任。

下一篇: PL/SQL 09 包 package
请登录后发表评论 登录
全部评论

注册时间:2012-10-23

  • 博文量
    94
  • 访问量
    249082