第四章 pl/sql 异常处理 游标

本文详细介绍了PL/SQL中的异常处理机制,包括预定义异常、自定义异常和异常码绑定,并展示了如何使用`raise_application_error`引发应用程序异常。此外,还探讨了游标的分类、属性和操作过程,包括显性游标、隐性游标及其使用步骤,以及游标在数据处理中的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

五、PL/SQL的异常处理[外网链接:

https://www.cnblogs.com/ivictor/p/3892743.html]
程序的错误一般分为两类:编译错误和运行时错误。
在程序运行时出现的错误,称为异常。发生异常后,语句将停止执行,PL/SQL 引擎立即将控制权转到 PL/SQL 块的异常处理部分。异常处理机制简化了代码中的错误检测。PL/SQL 中任何异常出现时,每一个异常都对应一个异常码和异常信息。
1、预定义异常 (执行错误)
为了 Oracle 开发和维护的方便,在 Oracle 异常中,为常见的异常码定义了对应的异常名称,称为预定义异常
异常名称 异常码 概述
no_data_found ORA-01403 SELECT INTO 语句中没有返回任何记录。
too_many_rows ORA-01422 SELECT INTO 语句中返回多于1 条记录。
dup_val_no_index ORA-00001 试图向唯一索引列插入重复值
invalid_cursor ORA-01001 试图进行非法游标操作。
invalid_number ORA-01722 试图将字符串转换为数字
zero_divide ORA-01476 试图用0 作为除数。
cursor_already_open ORA-06511 试图打开一个已经打开的游标

PL/SQL 中用 Exception 关键字开始异常处理。
语法格式:异常处理
语法解析:
异常发生时,进入异常处理部分,具体的异常与若干个when 子句中指明的异常名匹配,匹配成功就进入对应的异常处理部分,如果对应不成功,则进入 others 进行处理。

2、自定义异常。 (用户自认为的异常信息)
除了预定义异常外,用户还可以在开发中自定义异常,自定义异常可以让用户采用与 PL/SQL 引擎处理错误相同的方式进行处理,用户自定义异常的两个关键点:
异常定义:
在变量声明部分采用Exception 关键字声明异常,定义方法与定义变量相同。
比如声明一个 PL/SQL块的声明myexception 异常方法是: myexception Exception ;
异常引发: 在程序可执行区域,使用Raise关键字进行引发。比如引发myexception 方法是:
raise myexception;
格式:
declare中声明异常;
异常名 exception;
begin语句块中引发:
raise 异常名;
exception中捕捉处理异常:when 异常名 then 异常处理内容。

3、引发应用程序异常
在 Oracle 开发中,遇到的系统异常都有对应的异常码,在应用系统开发中,用户自定义的异常也可以指定一个异常码和异常信息,Oracle 系统为用户预留了自定义异常码,其范围介于-20000 到-20999 之间的负整数。引发应用程序异常的语法是:
raise_application_error(异常码,异常内容信息)
—–用于自定义异常处理报错的框框。

4、异常码的绑定
如果要处理未命名的内部异常,必须使用 others异常处理器。也可以利用 相应的语法 把一个异常码与异常名绑定。
pragma excepti

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值