- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第21章 异常
截获Oracle 服务器没有预定义的错误 要截获Oracle 服务器没有预定义的错误,需先声明这个错误或者使用OTHERS处理机。 声明的异常被显式触发。在 PL/SQL 中 编译指令 EXCEPTION_INIT 将异常处理名字和Oracle的错误代码关联起来。这样,你就可以通过名字引用任一个内在的异常处理并且可以为它们编写一个特定的处理机。 附注::关键字 PRAGMA (伪指令pseudoinstructions) 表示语句是一个编译指令,在执行PL/SQL块时并不处理该语句。在PL/SQL块中,一个编译指令EXCEPTION_INIT告诉编译器将一个异常处理的名字和一个Oracle错误代码联系起来。 截获Oracle 服务器没有预定义的错误 1. 在声明部分声明异常名。 语法: exception EXCEPTION; 其中: exception 异常名 2. 使用PRAGMA EXCEPTION_INIT语句将异常处理名字和Oracle的错误代码关联起来. 语法: PRAGMA EXCEPTION_INIT ( exception , error_number ) ; 其中: exception 先前声明的异常名 error_number 标准Oracle 错误代码 3. 在相应的异常处理例程中引用已声明的异常。 举例: 如果部门中有员工,向用户显示该部门不能被移动。 DECLARE e_emps_remaining EXCEPTION; PRAGMA EXCEPTION_INIT ( e_emps_remaining, -2292); v_deptno dept.deptno%TYPE := p_deptno; BEGIN DELETE FROM dept WHERE deptno = v_deptno; COMMIT; EXCEPTION WHEN e_emps_remaining THEN DBMS_OUTPUT.PUT_LINE (Cannot remove dept || TO_CHAR(v_deptno) || . Employees exist. ‘ ) ; END; 截获错误函数 当发生异常时,可以使用SQLCODE 和SQLERRM函数返回Oracle的错误代码和错误消息。根据返回的代码和消息,你可以决定如何处理这个错误。 SQLCODE 对于内在的异常返回Oracle的错误代码,可以将错误代码传递给SQLERRM, 而SQLERRM返回这个错误代码的消息。 SQLCODE 值的举例: SQLCODE值 描述 ———————————————————————— 0 没有遇到异常 ———————————————————————— 1 自定义异常 ———————————————————————— +100 NO_DATA_FOUND异常 ———————————————————————— 负数 其它Oracle错误代码 ———————————————————————— 截获错误函数 当在WHEN OTHERS异常处理机中截获一个异常时,可以使用一类特殊函数标识这些错误。 在幻灯片中i,SQLCODE 和 SQLERRM 的值赋给了变量,而后在SQL语句中将使用这些变量。 在将SQLERRM的值赋给变量之前,需要把SQLERRM值截到知道的长度。 截获自定义的异常 PL/SQL 允许用户自定义的异常。自定义的PL/SQL 异常必须: 在PL/SQL块的声明部分声明。 使用RAISE语句显式地发布 。 阿尔茨海默症防治相关知识埃及的金字塔有建造方法动画艾司洛尔在神经外科重症中的应用二级二班防溺水等安全教育 阿尔茨海默症防治相关知识埃及的金字塔有建造方法动画艾司洛尔在神经外科重症中的应用二级二班防溺水等安全教育 Oracle SQLPL/SQL第21章 异常 本章要点 定义 PL/SQL 异常 列出并使用不同类型的 PL/SQL 异常处理器语句 截获无法预料的错误 描述嵌套块中异常传播的影响 自定义 PL/SQL 异常消息命令 处理 PL/SQL异常 什么是异常?在PL/SQL中的一个警告或错误都是异常。 异常是如何触发的? 发生了一个 Oracle 错误时。 使用RAISE语句显式触发。 如何处理异常? 用处理机截获。 在调用环境中传播异常。 异常处理 截获异常 DECL
文档评论(0)