在设计PL/SQL程序时经常会发生这样或那样的错误异常处理就是针对错误进行处理的程序段Oracle i中的异常处理分为系统预定义异常处理和自定义异常处理两部分
系统预定义异常处理
系统预定义异常处理是针对PL/SQL程序编译执行过程中发生的问题进行处理的程序 下列代码为正确代码在【SQLPlus Worksheet】中能够顺利执行
―――――――――――――――――――――――――――――――――――――
set serveroutput on
declare
tempno integer:=;
begin
tempno:=tempno+;
end;
―――――――――――――――――――――――――――――――――――――
【配套程序位置】第章\ correctplsqlsql
下列代码为错误代码在【SQLPlus Worksheet】中的执行结果如图所示
【配套程序位置】第章\ wrongplsqlsql
由于代码有错误因此将激活系统预定义的异常处理并得出如下提示信息
Oracle i提供了很多异常处理读者可以尝试修改可以正常运行的程序并执行修改后的程序就可以发现调用了哪些异常处理下面着重介绍如何自定义异常处理
自定义异常处理
定义异常处理
定义异常处理的语法如下
declare
异常名 exception;
触发异常处理
触发异常处理的语法如下
raise 异常名;
处理异常
触发异常处理后可以定义异常处理部分语法如下
Exception
When 异常名 then
异常处理语句段;
When 异常名 then
异常处理语句段;
实例
下面的PL/SQL程序包含了完整的异常处理定义触发处理的过程定义名为salaryerror的异常在scottemp数据表中查找empno=的记录将其值放入变量tempsal中判断tempsal值若不在和之间说明该员工的薪水有问题将激活异常处理提示信息
在【SQLPlus Worksheet】中执行下列PL/SQL代码执行结果如图所示
【配套程序位置】第章\ exceptiondefinesql