DBMS_OUTPUT.put_line('no data found'); WHEN OTHERS THEN DBMS_OUTPUT.put_line('ERROR CODE: ' || SQLCODE || CHR(10) || 'ERROR MSG:' || SQLERRM); END; 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 会显示NO_DATA_FOUND的记录如下: SQL> SELECT * FROM TB_USER WHERE ID=1; 未...
SQLCODE返回的是负数,除非Oracle的错误为“ORA-01403:NO DATA FOUND”(译:ORA-01403:未找到数据),当Oracle错误为“ORA-01403:NO DATA FOUND”时,其对应的SQLCODE为+100。对于用户自定义的异常,SQLCODE返回的是+1,而SQLERRM返回的是User-Defined Exception。 一个Oracle的错误消息最多只能包含512个字节的错误代码。...
SQLCODE 返回错误代码 SQLERRM 返回与错误代码关联的消息 保存任何非预期的异常的错误编码和错误消息 declarev_error_codeNUMBER; v_error_messageVARCHAR2(255);BEGINEXCEPTIONWHENOTHERSTHENROLLBACK; v_error_code :=SQLCODE; v_error_message :=SQLERRM;INSERTINTOerr_logsVALUES(v_error_code, v_error_message);...
ORA-06533 SUBSCRIPT_BEYOND_COUNT 当分配给NESTED TABLE或者VARRAY的空间小于使用的下标的时候,发生该异常(类似于java的ArrayIndexOutOfBoundsException) ORA-06592 CASE_NOT_FOUND 如果定义了一个没有ELSE子句的CASE语句,而且没有CASE语句满足运行时条件时出现该异常 ORA-30625 SELF_IS_NULL 调用一个对象类型非静态成...
SQLCODE:返回错误代码数字, SQLERRM:返回错误信息. 如: SQLCODE=+100 è SQLERRM=’no_data_found ‘ SQLCODE=0 è SQLERRM=’normal, successfual completion’ 例、将Oracle错误代码及其信息存入错误代码表 DECLARE err_msg VARCHAR2(100); BEGIN /* 得到所有 Oracle 错误信息 */ ...
为每个ORACLE错误都有一个号码并且在PL/SQL中异常通过名字处理,ORACLE提供了预定义的内部异常。如SELECT INTO 语句不返回行时产生的ORACLE异常NO_DATA_FOUND。最常用的异常列举如下: 3、异常的抛出 由三种方式抛出异常 1. 通过PL/SQL运行时引擎 2. 使用RAISE语句 ...
DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM); END; 1、异常的优点 如果没有异常,在程序中,应当检查每个命令的成功还是失败,如 BEGIN SELECT ... -- check for ’no datafound’ error SELECT ... -- check for ’no datafound’ error
dbms_output.put_line(sqlcode||' '||sqlerrm); end; 2.定义异常并将异常与标准的oracle错误联系起来: declare e_fk exception; pragma exception_init(e_fk,-2292); 3.在pl/sql块处理异常: exception when e_fk then 执行语句 自定异常:用户自定义的; ...
APPLY$_WENDING_80 2.30.117296 9.16.117153 ORA-01403: no data found 2) 显示事务的错误信息 SQL> SET SERVEROUTPUT ON SIZE 1000000 SQL> exec print_transaction('2.30.117296'); 3) 手工纠正,在目的库上执行update语句等 4) 然后再次执行原事务,该事务就可以被正常执行 ...
WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('数据库中没有编码为'||v_empno||'的员工'); WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE('程序运行错误!请使用游标'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM); ...