RAISE_APPLICATION_ERROR(错误号,消息,keeperrorstackfalse); 描述 错误号 特定于供应商的编号,在将此编号存储在名为 SQLCODE 的变量中之前,将它映射到错误码。RAISE_APPLICATION_ERROR 过程接受用户定义的错误号值 -20000 到 -20999。在错误消息中返回的 SQLCODE 是 SQL0438N。SQLSTATE 包含类“UD”以及三个字符,...
进而使程序进入异常处理部分(本部分为举例),程序同样执行成功;当输入一个负数时,if条件语句就会进入到raise_application_error部分,由于可执行部分运行发生错误,执行焦点会立即转移到异常处理部分,而异常处理部分没有关于该异常的处理,所以程序报错,并返回到用户界面。
- 是哟个raise_application_error,程序员可以使程序实现像Oracle系统产生的错误消息。 - 事实上,单纯使用raise_application_error,因为没有异常的名称,如果要对其进行异常处理,只能够使用others(下文有专门的介绍)。 2,EXCEPTION_INIT - 使用EXCEPTION_INIT编译指令,可以将用户自定义的Oracle错误编号和用户自定义的错...
raise_application_error(error_number,error_message); or raise_application_error(error_number,error_message,keep_errors); error_number是与特定错误消息相关联的错误编号,这个编号的范围在-20999到-20000之间(避免与内置编号冲突)。 keep_errors是boolean类型,决定是否加入错误栈(true)或者替换错误栈(false)。默认...
The RAISE_APPLICATION_ERROR procedure raises an exception based on a user-provided error code and message. This procedure is only supported in PL/SQL contexts. Syntax >>-RAISE_APPLICATION_ERROR--(--error-number--,--message--,--+---+--)--;->< | .-false-. | '-keeperrorstack--...
调用RAISE_APPLICATION_ERROR存储过程——抛出用户定义异常 非预定义异常 因为非预定义异常只有编号,没有名称,所以不能直接处理。 1、在PL/SQL块的定义部分定义异常情况: <异常情况> EXCEPTION; 2、将其定义好的异常情况,与标准的ORACLE错误联系起来,使用EXCEPTION_INIT语句: ...
RAISE_APPLICATION_ERROR(-20001,'Employees must at least eighteen years of age.'); ENDIF; END; 下面我们编写一个客户端程序,为了简单,同样用PL/SQL调用 DECLARE no_babies_allowed EXCEPTION; /*将名称与用于触发器中的错误号码关联起来*/ PRAGMA EXCEPTION_INIT(no_babies_allowed,-20001); ...
RAISE_APPLICATION_ERROR(error_number, '这里是一个自定义的错误信息'); END IF; END; 使用RAISE_APPLICATION_ERROR时,你可以指定一个错误号(一个负整数,Oracle PL/SQL预定义的范围是从-20000到-20999),以及一个描述错误的字符串。 在例,一个匿名块声明了一个名为past_due的异常,为其分配了错误码-20000,并...
2.RAISE_APPLICATION_ERROR (其他机器上的SQLPLUS或者其他前台开发语言)。 /SQL中定义错误消息,且只能在数据库端的子程序中使用(存储过程、函数、包、触发器),不能在匿名块和客户端的 子程序中使用 使用方法 RAISE_APPLICATION_ERROR(error_number,message[,{true | false}]); ...
借助于RAISE_APPLICATION_ERROR过程,编程人员能够遵循与Oracle错误一致的方式返回错误信息。 综上所述,我们发现预定义异常的错误代码有名称,譬如上文提到的NO_DATA_FOUNG,而非预定义异常只有错误代码,没有名称,如上文提到的ora-02292。这时可以通过EXCEPTION_INIT编译指令进行错误代码和名称的关联。当PL/SQL语句块的可执...