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 返回错误代码 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);...
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个字节的错误代码。...
APPLY_NAME LOCAL_TRANSACTION_ID SOURCE_TRANSACTION_ID ERROR_MESSAGE 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) 然后再...
SQLCODE:返回错误代码数字, SQLERRM:返回错误信息. 如: SQLCODE=+100 è SQLERRM=’no_data_found ‘ SQLCODE=0 è SQLERRM=’normal, successfual completion’ 例、将Oracle错误代码及其信息存入错误代码表 DECLARE err_msg VARCHAR2(100); BEGIN /* 得到所有 Oracle 错误信息 */ ...
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 执行语句 自定异常:用户自定义的; ...
为每个ORACLE错误都有一个号码并且在PL/SQL中异常通过名字处理,ORACLE提供了预定义的内部异常。如SELECT INTO 语句不返回行时产生的ORACLE异常NO_DATA_FOUND。最常用的异常列举如下: 3、异常的抛出 由三种方式抛出异常 1. 通过PL/SQL运行时引擎 2. 使用RAISE语句 ...
(-20001,'Employee id can not be negative.'); end if; exception when NO_DATA_FOUND then dbms_output.put_line(chr(10)||'There is no such employee id is '||v_id); when others then declare error_code number; error_msg varchar2(500); begin error_code := sqlcode; error_msg := ...
1、sqlcode和sqlerrm函数 sqlcode返回异常对象的错误代码号,sqlerrm返回的是对应的错误信息,为了在plsql中处理其他未预料的Oracle错误, 可以在异常处理部分的when others子句后引用这两个函数来确定错误号和信息。 异常种类 SQLCODE SQLERRM Oracle错误对应的异常 负数 Oracle错误 NO_DATA_FOUND +100 No data found 自定...
13 WHEN NO_DATA_FOUND THEN 14 DBMS_OUTPUT.PUT_LINE('数据库中没有编码为'||v_empno||'的员工'); 15 WHEN TOO_MANY_ROWS THEN 16 DBMS_OUTPUT.PUT_LINE('程序运行错误!请使用游标'); 17 WHEN OTHERS THEN 18 DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM); ...