PL/SQL异常处理(转)

本文深入探讨了Oracle9i中PL/SQL的异常处理机制,包括系统预定义异常和自定义异常的定义、触发及处理过程。通过具体示例,展示了如何在PL/SQL程序中有效使用异常处理,确保程序的健壮性和稳定性。
PL/SQL异常处理:



在设计PL/SQL程序时,经常会发生这样或那样的错误,异常处理就是针对错误进行处理的程序段,Oracle 9i中的异常处理分为系统预定义异常处理和自定义异常处理两部分。

系统预定义异常处理

系统预定义异常处理是针对PL/SQL程序编译、执行过程中发生的问题进行处理的程序。 下列代码为正确代码,在【SQLPlus Worksheet】中能够顺利执行。
―――――――――――――――――――――――――――――――――――――
set serveroutput on
declare
tempno integer:=90;
begin
tempno:=tempno+1;
end;
―――――――――――――――――――――――――――――――――――――
【配套程序位置】:第9章 correctplsql.sql
下列代码为错误代码,在【SQLPlus Worksheet】中的执行结果如图9.56所示。
0653011562132641.JPG
【配套程序位置】:第9章 wrongplsql.sql
由于代码有错误,因此将激活系统预定义的异常处理,并得出如下提示信息。
0653011562228361.JPG
Oracle 9i提供了很多异常处理,读者可以尝试修改可以正常运行的程序,并执行修改后的程序,就可以发现调用了哪些异常处理,下面着重介绍如何自定义异常处理。

自定义异常处理

1. 定义异常处理
定义异常处理的语法如下:
declare
异常名 exception;
2. 触发异常处理
触发异常处理的语法如下:
raise 异常名;
3. 处理异常
触发异常处理后,可以定义异常处理部分,语法如下:
Exception
When 异常名1 then
异常处理语句段1;
When 异常名2 then
异常处理语句段2;
4. 实例
下面的PL/SQL程序包含了完整的异常处理定义、触发、处理的过程。定义名为salaryerror的异常,在scott.emp数据表中查找empno=7566的记录,将其值放入变量tempsal中,判断tempsal值若不在900和2600之间,说明该员工的薪水有问题,将激活异常处理,提示信息。
在【SQLPlus Worksheet】中执行下列PL/SQL代码,执行结果如图9.57所示。
0653011562335350.JPG
【配套程序位置】:第9章 exceptiondefine.sql
0653011562739009.JPG


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

转载于:http://blog.itpub.net/10294527/viewspace-123144/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值