oracle的raise,oracle中raise的意思,Oracle中RAISE异常深入分析

oracle的raise,oracle中raise的意思,Oracle中RAISE异常深入分析

当数据库或PL/SQL运行时中出现错误时,PL/SQL运行时引擎会自动抛出异常。oracle有三种方式抛出异常。需要了解的朋友可以仔细阅读这篇文章。

有三种方式抛出异常

1.通过PL/SQL运行时引擎2。使用RAISE语句3。调用RAISE_APPLICATION_ERROR存储过程当运行时数据库或PL/SQL中出现错误时,PL/SQL运行时引擎会自动抛出异常。异常也可以通过raise语句抛出RAISEexception _ name显式抛出异常是程序员用来处理声明的异常的习语,但RAISE并不局限于声明的异常,它可以抛出任何异常。例如,如果要使用TIMEOUT_ON_RESOURCE error来检测新的运行时异常处理程序,只需在程序中使用以下语句即可:raise timeout _ on _ resolve例如,在下面的订单输入示例中,如果订单小于库存数量,则抛出并捕获异常,异常处理副本代码如下:declare inventory _ Too _ Low Exception;-如果order _ rec,则开始其他语句。qtyInventory _ rec。然后提高库存_太低;END IF EXCEPTION WHEN inventory _ too _ low THEN order _ rec . staus:= backordered ;结束;RAISE_APPLICATION_ERROR内置函数用于抛出异常,并给出错误号和信息。自定义异常的默认错误号是1,默认信息是用户定义的异常。可以在pl/sql块的执行部分和异常部分调用RAISE_APPLICATION_ERROR函数,并显式抛出带有特殊错误号的命名异常。raise _ application _ error(error _ number,message [,true,false]))错误号的范围是-20,000到-20,999。该错误是一个最大2048字节的文本字符串。TRUE和FALSE指示是添加(TRUE)到错误堆栈还是覆盖错误堆栈(FALSE)。默认情况下为FALSE。代码如下:复制代码如下:如果product _ not _ found那么raise _ application _ error (-20123,无效产品代码,true);结束IF;- .复制代码如下:begin declare bad _ credit exception;开始提高不良信贷;-异常,控制转向;bad _ credit THEN DBMS _ output . put _ line( bad _ credit )时出现异常;结束;-在bad_credit异常被处理后,控件转到此处异常,而其他时候-控件不会从bad_credit异常转到此处-因为bad _ credit已被处理结束;当异常发生时,当块内部没有异常处理程序时,控制将被转移或传播到前一个块的异常处理部分。begin declare-内部块bad_credit异常的开始;开始提高不良信贷;-异常,控制转向;ZERO_DIVIDE THEN时出现异常-无法处理bad_credite异常DBMS _ outputput _ line(除以零误差);端到端内部块控制无法到达此处,因为异常未解决;-当其他人接着出现时例外-因为bad_credit没有得到解决,控制将在这里结束;

oracle的raise,oracle中raise的意思,Oracle中RAISE异常深入分析