在这个示例中,如果查询没有找到匹配的员工ID,就会触发NO_DATA_FOUND异常,并在EXCEPTION部分捕获并处理该异常。 5. 给出预防NO_DATA_FOUND异常的建议 为了预防NO_DATA_FOUND异常,可以采取以下建议: 检查数据存在性:在执行SELECT INTO语句之前,先使用COUNT查询或其他方法检查数据是否存在。 使用默认值或空值:如果查询可...
1.预定义(Predefined)错误 常用的:没有结果:No_data_found 输出的行太多:Too_many_rows 2.非预定义(UnPredefined)错误 3.用户定义(User_define)错误 异常的格式: exception whenToo_many_rowsthendbms_output.put_line('输出的行数太多了'); 二:错误处理 1.预定义异常 [预定义异常]declarev_sal employees....
select deptno into v_id from emp where 1= 2;--no_data_found Exception --select deptno into v_id from emp where 1= 1/0;--ZERO_DIVIDE Exception Exception when ZERO_DIVIDE then dbms_output.put_line('ZERO_DIVIDE Exception'); when no_data_found then dbms_output.put_line('no_data_found...
WHEREid =c_id;DBMS_OUTPUT.PUT_LINE ('Name: '||c_name);DBMS_OUTPUT.PUT_LINE ('Address: '||c_addr);ENDIF;EXCEPTION WHENex_invalid_id THENdbms_output.put_line('ID must be greater than zero!');WHENno_data_found THENdbms_output.put_line('No such customer!');WHENothers THENdbms_outp...
exception when no_data_found then dbms_output.put_line('没有查询到数据'); end; 【解析】由于"no_data_found'是系统已经定义好的异常,他有错误原因:查不到数值, 错误代码ORA-01403,也有定义好的名字“not_data_found”。故可以直接用。 2、非预定义的异常处理 ...
异常处理部分从关键字EXCEPTION开始,在异常处理部分使用WHEN字句捕捉各种异常,如果有其他未预定义到的异常,使用WHENOTHERSTHEN字句进行捕捉和处理。 1、处理预定义异常,这是系统预定的21种类型 错误代码是负整数,如-51 access_info_null(ora-06530) 当访问没有初始化的对象时触发。 Case_not_found(ora-...
if SQL%NOTFOUND then raise e_no_employee; end if; exception when e_integrity then dbms_output.put_line('deptno not exists'); when e_no_employee then dbms_output.put_line('empno not exists'); end; 另外一种就是例外函数,这个在c编写的时候经常用到就是SQLCODE和SQLERRM,用于取得错误号和错误...
OPEN c_data; LOOP FETCH c_data INTO v_column1, v_column2, v_column3; EXIT WHEN c_data%NOTFOUND; -- 写入数据到Excel中 OLE2.SET_PROPERTY(v_worksheet, 'Cells', v_row_index, v_column_index, v_column1); OLE2.SET_PROPERTY(v_worksheet, 'Cells', v_row_index, v_column_ind...
dbms_output包主要用于调试pl/sql程序,或者在sql*plus命令中显示信息(displaying message)和报表,譬如我们可以写一个简单的匿名pl/sql程序块,而该块出于某种目的使用dbms_output包来显示一些信息。 enable:在serveroutput on的情况下,用来使dbms_output生效(默认即打开) ...
('Name: ' || v_name); EXCEPTION WHEN NO_DATA_FOUND THEN -- 如果没有找到匹配的记录,处理异常 DBMS_OUTPUT.PUT_LINE('No data found.'); WHEN TOO_MANY_ROWS THEN -- 如果找到多个匹配的记录,处理异常 DBMS_OUTPUT.PUT_LINE('Too many rows found.'); WHEN OTHERS THEN -- 处理其他异常 DBMS_...