pl/sql开发知识之异常处理

本文介绍了Oracle数据库中的异常处理机制,包括两种类型的异常:编译时异常和运行时异常。此外,还详细解释了内置异常SQLCODE和SQLERRM的使用,并提供了一个如何使用EXCEPTION_INITPRAGMA定义自定义异常的例子。
1.异常有两种类型:编译时的和运行时的。
2.oracle异常管理中内置的2个:SQLCODE,SQLERRM
  注意,还可以在EXCEPTION_INIT PRAGMA中定义。
 比如:
在子程序z-keyword.gif中使用EXCEPTION_INIT的语法如下:
  PRAGMA EXCEPTION_INIT(exception_name, -Oracle_error_number);
  在该语法中,异常名是声明的异常,下例是其用法:
  DECLARE
  deadlock_detected EXCEPTION;
  PRAGMA EXCEPTION_INIT(deadlock_detected, -60);
  BEGIN
  ... -- Some operation that causes an ORA-00060 error
  EXCEPTION
  WHEN deadlock_detected THEN
  -- handle the error
  END;
3.常见的异常:
ACCESS_INTO_NULL:访问的对象尚未初始化。
CASE_NOT_FOUND:在case里没有else,结果所有的case都不满足。
COLLECTION_IS_NULL:尝试去访问一个未初始化的嵌套表或者varray时。
CURSOR_ALREADY_OPEN:尝试去打开一个已经打开的cursor。
DUP_VAL_ON_INDEX:插入值引发唯一索引出错。
INVALID_CURSOR:对cursor执行不恰当的操作,比如关闭一个未打开的游标。


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

转载于:http://blog.itpub.net/117819/viewspace-524920/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值