oracle 使用例外exception

本文介绍了PL/SQL中的异常处理机制,包括预定义异常、非预定义异常和自定义异常的使用方法及示例。

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

  例外

  例外(exception)是一种PL/SQL标识符,它用于处理PL/SQL程序的运行错误。Oracle提供了预定义例外、非预定义例外和自定义例外等三种例外类型,其中预定义例外用于处理常见的Oracle错误,非预定义例外用于处理预定义例外所不能处理的Oracle错误,自定义例外用于处理与Oracle错误无关的其他情况。

  1.语法

  EXCEPTION
   WHEN exception1 [OR exception2...] THEN
    statement1;
    statement2;
    ...
   WHEN exception3 [ OR exception4...] THEN
    statement1;
    statement2;
    ...
   WHEN OTHERS THEN
    statement1;
    statement2;
    ...

 2.预定义例外

   2.1 说明 

   PL/SQL为开发人员提供了20多个预定义例外,每个预定义例外都对应一个Oracle错误。下面是常见的预定义例外:

   (1)NO_DATA_FOUND :该例外对应于ORA-01403错误。当执行SELECT INTO未返回行,或者引用未初始化的PL/SQL表元素时,会隐含地触发该例外。
   (2)TOO_MANY_ROWS :该例外对应于ORA-01422错误。当执行SELECT INTO语句时,如果返回超过一行,则会触发该例外。
   (3)DUP_VAL_ON_INDEX :该例外对应于ORA-00001错误。当在惟一索引所对应的列上键入重复值时,会隐含触发该例外。
   (4)ZERO_DIVIDE :该例外对应ORA-01476错误。如果使用数字值除0,则会隐含触发该例外。
   (5)INVALID_CURSOR :该例外对应ORA-01001错误。当试图在不合法的游标上执行操作时,会隐含地触发该例外。例如,从未打开的游标提取数据或者关闭未打开的游标,则会触发该例外。

   2.2 使用示例


 3.非预定义例外

   3.1 说明

   当使用预定义例外时,只能处理21个Oracle错误。为了处理其他Oracle错误,必须使用非预定义例外。
   使用步骤:
   定义例外(e_integrity EXCEPTION)--->关联例外和错误(PRAGMA EXCEPTION_INIT(e_integrity,-2291))--->引用例外(WHEN e_integrity THEN statement1...;

   3.2 使用示例


 4.自定义例外

   4.1 说明

   自定义例外与Oracle错误没有任何关联,它是由开发人员为特定情况所定义的例外。
   使用步骤:
   定义例外(e_no_employee EXCEPTION)--->显式触发例外(RAISE e_no_employee)--->引用例外(WHEN e_no_employee THEN statement1...;

   4.2 使用示例


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值