pl/sql异常处理和事务

本文详细介绍了PL/SQL中的21个预定义异常及其错误情况,包括访问未初始化对象、无效的游标操作等。同时,讨论了自定义异常的定义和处理方法。此外,文章阐述了事务的ACID特性,分析了不同隔离级别可能导致的问题,如脏读、不可重复读和幻读,并给出了解决方案。最后,提到了事务的自动提交以及如何在Oracle和SQL Server中进行事务控制,包括事务锁的概念和类型。
摘要由CSDN通过智能技术生成

异常处理

21个预定义异常

异常 错误 何时出现
ACCESS_INTO_NULL ORA-06530 视图访问未初始化对象的时候出现
CASE_NOT_FOUND ORA-06592 如果定义了一个没有ELSE子句的CASE语句,而且没有CASE语句满足运行时条件是出现该异常
CIKKECTION_IS_NULL ORA-06531 当程序去访问一个没有进行初始化的NESRED RABLE或者是VARRAY的时候,会出现该异常
COLLECTION_ALREADY_OPEN ORA-06511 游标已经被OPEN,如果再次尝试打开该游标的时候,会出现该异常
DUP_VAL_ON_INDEX ORA-00001 如果插入一列被唯一索引约束的重复值的时候,就会引发该异常(该值被INDEX认定为冲突的)
INVALID_CURSOR ORA-01001 不允许的游标操作,比如关闭一个游标
INVALID_NUMBER ORA-01722 给数字值赋非数字值的时候,该异常就会发生,这个异常也会发生在批读取时候LIMIT子句返回非正数的时候
LOGIN_DENIED LOGIN_DENIED 程序中,使用错误的用户名和密码登录的时候,就会抛出这个异常
NO_DATA_FOUND ORA_06548 在使用SELECT INTO 结构,并且语句返回NULL值的时候;访问嵌套表中 已经删除的表或者是访问INDEX BY表(联合数组)中的未初始化元素就会出现该异常
NOT_LOGGED_ON ORA-01012 当程序发出数据库调用,但是没有连接的时候(通常,在实际与会话断开连接之后)
PROGRAM_ERROR ORA-06501 当Oracle还未正式捕获的错误发生时常会发生,这是因为数据库大量的 Object功能而发生

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值