plsql总结-3(异常处理及嵌套块)

plsql总结-3(异常处理及嵌套块)

ID:39977343

大小:1.63 MB

页数:82页

时间:2019-07-16

plsql总结-3(异常处理及嵌套块)_第1页
plsql总结-3(异常处理及嵌套块)_第2页
plsql总结-3(异常处理及嵌套块)_第3页
plsql总结-3(异常处理及嵌套块)_第4页
plsql总结-3(异常处理及嵌套块)_第5页
资源描述:

《plsql总结-3(异常处理及嵌套块)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PL/SQL总结-3目录处理异常捕获OracleServer异常捕获用户定义异常识别变量作用域处理异常本部分将讲解:在PL/SQL代码中包含异常处理代码的优点PL/SQL块异常处理部分的目的异常处理指南处理异常前面学了如何在PL/SQL块中编写声明部分和执行部分.所有要执行的SQL和PL/SQL代码都写在执行部分.迄今为止我们假设代码只有编译错误.然而,代码会发生难以预料的运行时错误.本部分学习如何在PL/SQL块中处理这些运行时错误.什么是异常?异常是程序的运行时错误,异常会中断程序的正常执行.异常的产生有多种原因:用户输入错误;硬件错误;网页不存在;等等.你使用应用程序

2、和网站时遇到过错误吗?PL/SQL中的异常下例运行正常.但是如果输入的是Korea,South而不是RepublicofKorea呢?DECLAREv_country_namewf_countries.country_name%TYPE:='RepublicofKorea'; v_elevationwf_countries.highest_elevation%TYPE;BEGINSELECThighest_elevationINTOv_elevationFROMwf_countriesWHEREcountry_name=v_country_name; DBMS_OUTPUT

3、.PUT_LINE(v_country_name);END;PL/SQL中的异常DECLAREv_country_namewf_countries.country_name%TYPE:='RepublicofKorea'; v_elevationwf_countries.highest_elevation%TYPE;BEGINSELECThighest_elevationINTOv_elevationFROMwf_countriesWHEREcountry_name=v_country_name; DBMS_OUTPUT.PUT_LINE(v_country_name);E

4、ND;PL/SQL中的异常代码没有按预期的运行.没有找到有关Korea,South的数据,因为国家名实际上是按RepublicofKorea存储的.这类PL/SQL错误称为异常.异常发生时,我们说异常被“抛出”.异常被抛出时,异常点之后PL/SQL块执行部分的剩余代码不再执行.什么是异常处理代码?异常处理代码定义了异常发生后应当执行的恢复操作.编写代码时,程序员应当预见到代码执行时可能发生的错误的类型.然后为每一种错误编写异常处理代码.异常处理代码是程序员为代码错误编制的处理预案.什么是异常处理代码?程序员使用异常处理代码来处理哪些错误?系统错误(比如磁盘空间耗尽)数据错误

5、(比如,主键值重复)用户错误(比如,数据输入错误)很多其它的可能性!为什么异常处理重要?你能说明为什么异常处理如此重要吗?可能的原因包括:减轻错误对用户的影响(频繁的错误使用户沮丧甚至拒绝使用程序)保护数据库(避免数据丢失或被覆盖)错误消耗大量系统资源(错误发生后,纠正错误代价高昂;用户频繁打电话请求帮助).代码更加易读,因为错误处理代码可在同一个块中的独立部分处理错误.处理PL/SQL异常PL/SQL抛出异常,块执行结束但可编写异常处理代码,在块结束前执行最后的操作.异常处理部分以关键字EXCEPTION开始.处理PL/SQL异常异常如果被处理,PL/SQL程序就不会突然

6、中断.异常抛出后,控制转到异常处理部分,执行相应的处理代码.之后,PL/SQL块正常、成功结束.一个时刻只能发生一个异常.异常发生时,PL/SQL在块结束前只执行一个异常处理代码.处理PL/SQL异常点A的代码不会执行,因为SELECT语句失败.处理PL/SQL异常下面是另一示例.块中select语句用于获取John的last_name.DECLAREv_lnameVARCHAR2(15);BEGINSELECTlast_nameINTOv_lnameFROMemployeesWHEREfirst_namelike'El%'; DBMS_OUTPUT.PUT_LINE('E

7、llen''slastnameis:'

8、

9、v_lname);END;然而,因为有多个John所以会产生异常.处理PL/SQL异常下例中异常处理代码用于处理预定义的Oracle服务错误TOO_MANY_ROWS.下部分将详细学习预定义的Oracle服务错误.DECLAREv_lnameemployees.last_name%TYPE;BEGINSELECTlast_nameINTOv_lnameFROMemployeesWHEREfirst_namelike'El%'; DBMS_OUTPUT.PUT_LINE('E

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。