当前位置: 代码迷 >> SQL >> Oracle PL/SQL错误处理(非预定义异常)
  详细解决方案

Oracle PL/SQL错误处理(非预定义异常)

热度:91   发布时间:2016-05-05 11:38:08.0
Oracle PL/SQL异常处理(非预定义错误)

非预定义错误

非预定义错误即其他标准的Oracle错误。对于这种异常情况的处理,需

要用户在程序中定义,然后由Oracle自动将其引发。
对于这类异常情况的处理,首先必须对非定义的Oracle错误进行定义,

步骤如下。
1)在PL/SQL块的定义部分定义异常情况:
<异常情况> EXCEPTION;
2)将其定义好的异常情况,与标准的Oracle错误联系起来,使用
EXCEPTION_INIT语句:
PRAGMA EXCEPTION_INIT(<异常情况>,<错误代码>);
3)在PL/SQL块的异常情况处理部分对异常情况做出相应的处理:

需求:修改编写为7788的雇员所属的部门编号为99。
DECLARE  e_integrity EXCEPTION;  PRAGMA EXCEPTION_INIT(e_integrity,-2291);  --2291为Oracle定义的错误号,违背了完整性约束条件BEGIN  UPDATE emp SET deptno = 99 WHERE empno = 7788;  EXCEPTION    WHEN e_integrity THEN      Dbms_Output.put_line('该部门不存在');END;

备注:

RAISE_APPLICATION_ERROR存储过程,可以重新定义异常错误消息,它为应用程序提供了一种与Oracle交互的方法。
RAISE_APPLICATION_ERROR的语法:
RAISE_APPLICATION_ERROR(error_number,error_message);
在语法中:
error_number表示用户为异常指定的编号。该编号必须是介于-20000~-20999之间的负整数。
error_message表示用户为异常指定的消息文本。消息长度可长达2048字节。错误消息是与error_number表示关联的文本。

  相关解决方案