SELECT S.ORDER_NUM 查不到数据情况下,一条结果也没有;但 SELECT MAX(S.ORDER_NUM) 不管是否查到数据,都会有一条结果。这是这条结果赋值给了变量,这才不会报错。
when others then v_err_code:=sqlcode; v_err_txt:='测试:'||sqlerrm||DBMS_UTILITY.format_error_backtrace(); insert into proc_err_logs(code,message,info,occur_date) values(v_err_code,v_err_txt,'EXCEPTION',SYSDATE); commit; end; B、 create or replace procedure proc_test_max(var in nu...
1. 理解no_data_found异常 NO_DATA_FOUND是Oracle PL/SQL中的一个预定义异常,当SELECT INTO语句没有返回任何行时触发。这个异常不会自动被捕获,需要我们在代码中显式处理。 2. 使用BEGIN ... EXCEPTION ... END块捕获no_data_found异常 在PL/SQL中,BEGIN ... EXCEPTION ... END块用于包含可能引发异常的...
where tss.name='蒙牛'; EXCEPTION WHEN NO_DATA_FOUND THEN v_salary := -1; end; dbms_output.put_line('Exception deal '||to_char(v_salary)); --通过表关联的方式实现 select nvl(b.salary,-2) into v_salary from (select 1 rn from dual) a left join ( select tss.salary,rownum rn fr...
ORA-01403:no data found 解决办法 原因:select a into b from table;当查询出来的a没有数据时,这个时候就会抛出这个异常:ORA-01403:no data found 解决方法: 先定义一个整形变量,countA,增加一个count(*)即使没有找到数据,也会返回0,而不是null;然后再判断countA是否大于0,如果大于0,则再执行上面的语句...
oracle数据库存储过程中NO_DATA_FOUND不起作用解决 oracle数据库存储过程中NO_DATA_FOUND不起作用 1.首先创建一个表lengzijiantest,表中只有一个字段f_id ? 1 2 3 4 5 [cpp] CREATETABLELENGZIJIANTEST ( F_ID NUMBERNOTNULL ) 2.插入一条数据
Oracle的NO_DATA_FOUND和%NOTFOUND两个保留字的用法不够了解,主要是它们从意义上是有些类似。其实它们的用法是有区别的,小结如下: SELECT . . . INTO 语句触发 NO_DATA_FOUND; 当一个显示光标的 where 子句未找到时 触发 %NOTFOUND; 当UPDATE或DELETE 语句的where 子句未找到时 触发 SQL%NOTFOUND; ...
在使用Oracle10g 流复制时出现过一些问题,现在把解决过程总结一下。 系统配置:HP-UX B.11.31 U ia64、Oracle Enterprise Edition Release 10.2.0.4.0、表级单向流复制 问题现象:流复制失效,源表更新,目标表没有更新 排错过程: 1) 查看应用错误信息
insert into table_name (..)select ... from ..;查不到资料时是不会触发Exception的。如果在未找到数据时进行异常操作,可以在insert ...select..语句后加 If sql%rowcount=0 Then --要处理的事务 End If;
解决方法一:加一个exception异常处理 exception when no_data_found then ... 解决方法二:更改select语句,如: select count(*) field into var from table where ... 增加一个count(*)即使没有找到数据,也会返回0,而不是null。