- 在异常处理中,当异常的名称未知时(比如上面1中RAISE_APPLICATION_ERROR),都可以使用others来进行异常的捕获处理; - 由于others所捕获的异常是未知的(也可以是已知的,但是在程序中没有将其枚举出来),因此需要使用Oracle提供的两个内置函数SQLCODE、SQLERRM来针对others的异常进行处理:
ORACLE SQLCODE 和SQLERRM Oracle内置函数SQLCODE和SQLERRM是特别用在OTHERS处理器中,分别用来返回Oracle的错误代码和错误消息。 OTHERS处理器应该是异常处理块中的最后的异常处理器,因为它是用来捕获除了别的异常处理器处理以外的所有的Oracle异常,所以在程序的最外层使用一个OTHERS处理器的话,将可以确保所有的错误都会被检...
sqlcode:sqlcode函数用来返回pl/sql执行内部异常代码。其中0表示成功;-1表示失败;100表示没有检索到数据;+1表示用户自定义异常。 语法:sqlcode sqlerrm:sqlerrm函数用来返回指定错误代码的错误信息。 语法:SQLERRM [(error_number)] 一个Oracle的错误动静最多只能包孕512个字节的错误代码。 如果没有异常被触发,则SQLCO...
SQLCODE=0 -> SQLERRM='normal, successfual completion'sqlcode和sqlerrm如何使⽤?sqlcode和sqlerrm是不能直接在sql语句中使⽤,必须先将其赋给变量后,才能在sql语句中使⽤。例:DECLARE ... v_trans_error NUMBER; v_trans_error_msg VARCHAR2(512); BEGIN ...EXCEPTION ....
1.4 在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复。任何ORACLE错误(报告为ORA-xxxxx形式的Oracle错误号)、PL/SQL运行错误或用户定义条件(不一写是错误),都可以。当然了,PL/SQL编...
Oracle SQLCODE/SQLERRM Oracle内置函数SQLCODE和SQLERRM是稀奇用在OTHERS处置 惩器中,鉴别用来前往Oracle的错误代码和错误动静。 OTHERS处置 惩器应该长短常处置 惩块中的末真个非常处置 惩器,由于它是用来捕获除了别的非常处置 惩器处置 惩以外的十足的Oracle非常,以是在程序的最外层运用一个OTHERS处置 惩器的话,将...
SQLCODE函数返回当前的错误编码,对于用户自定义的异常,SQLCODE总是返回1;SQLERRM用于返回错误消息文本,对于自定义的异常,SQLERRM总是返回“User-defined Exception”。 用法如: ... EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('错误编号:'||SQLCODE||' 错误消息:'||SQLERRM); END; 1 2 3 4 5 SQLERRM函...
1、你应该在insert之前回退,把正常事务回退;2、在insert之后提交:EXCEPTION WHEN OTHERS THEN v_sqlerrm := sqlerrm;n_sqlcode := sqlcode;rollback;insert into test(sqlerrm,sqlcode) --test为自建表,用与存放错误的 values(v_sqlerrm ,n_sqlcode);commit;END ;3...
Oracle SQLCODE/SQLERRM Oracle内置函数SQLCODE和SQLERRM是稀奇用在OTHERS处置 惩器中,鉴别用来前往Oracle的错误代码和错误动静。 OTHERS处置 惩器应该长短常处置 惩块中的末真个非常处置 惩器,由于它是用来捕获除了别的非常处置 惩器处置 惩以外的十足的Oracle非常,以是在程序的最外层运用一个OTHERS处置 惩器的话,将...
DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM); END; 5.1.2非预定义的异常处理 对于这类异常情况的处理,首先必须对非定义的ORACLE错误进行定义。步骤如下: 1. 在PL/SQL块的定义部分定义异常情况: <异常情况> EXCEPTION; 2. 将其定义好的异常情况,与标准的ORACLE错误联系起来,使用EXCEPTION_INIT语句: ...