5. 根据具体情况调整SQL查询或数据库设置 修改查询逻辑:如果查询的目的是获取数据并可能为空,考虑使用PL/SQL的异常处理来捕获ORA-01403错误,或者将SELECT INTO更改为返回行的SELECT查询,并检查结果集是否为空。 使用NO_DATA_FOUND异常:在PL/SQL中,你可以使用NO_DATA_FOUND异常来处理SELECT INTO没有返回数据的情况。
3. 针对此问题的思考 想想上面的两种处理方式让脚本很难看并且很笨拙,用SELECT INTO前先COUNT(*)检测,感觉浪费性能, 用Exception异常块来处理,程序脚本中可能就会有很多begin/exception/end块语句块看着很傻很笨拙, 很多人提出了为什么Oracle 不能改善ORA-01403,比如当查询不到数据的时候返回NULL 来替换‘no data fo...
ORA-01403未找到任何数据select into 问题: 执行SQL,当无返回值时,会提示“ORA-01403未找到任何数据”。 createorreplacetriggertri_kf_trial beforeinsertonkf_trialforeach rowdeclarev_idvarchar2(25);beginSELECTidINTOv_idFROMHI_PSNDOC_BADWHEREid=:new.id;if(v_idISNOTNULL)thenraise_application_error(-...
解决方法一:加一个exception异常处理 当SQL语句:select P into v_rate from classpoint where rtrim(classcode) = :new.code; 执行时 如果没有查询到结果就会报错:数据未找到 修改为: begin select P into v_rate from classpoint where rtrim(classcode) = :new.code; exception whenno_data_foundthen v_r...
Oracle数据库的‘ORA-01403: 未找到任何数据’错误的一种可能原因 语句: select count(*) into c_count from book group by tid having tid = c_tid; 如果book表里没有符合 tid=c_tid的数据,分组会出现问题,count(*)将不是0, 而是没有值(不清楚是不是null),故不能将值给c_count; ...
oracle存储过程出现ORA-01403:未找到数据问题解决⽅法这段时间在做⼀个业务,需要⽤到存储过程处理业务逻辑,但是出现⼀个ORA-01403: 未找到数据问题,那么这个应该如何解决这个问题 declare mixType integer;begin --原先获取⽅式-- select NVL(MID,0) into mixType from DXC_MIXTYPE where Name='常温111...
有可能数据库本身就没有数据,所以未找到。单步调试,先加上where条件后查出来到底有没有数据,或者有多少数据,然后再在过程中单步调试一次啊,看问题出在哪里。你也可以跳出存储,当没有数据时,跳出存储。
注意select into 语句,如果不是从dual中取值,那么最好加上异常捕获。如:BEGIN select a.c_reportcode, c.c_unitid into cnb_vvarB, cnb_nvarF from tb_org_unitrelation a, TB_CNB_NDJXINFO b,tb_inf_employee c where b.c_empoid=c.c_oid and a.c_orgunitid = c.c_unitid a...
ORA-01403:未找到数据 在对oracle进行操作的时候,如果出现ORA-01403:未找到数据的错误时,请检查是不是所有的clob和blob字段是否赋值,如果这两个类型的字段没有赋值或赋值为空,会出现这样的错误
这段时间在做一个业务,需要用到存储过程处理业务逻辑,但是出现一个ORA-01403: 未找到数据 问题, 那么这个应该如何解决这个问题 declaremixTypeinteger;begin--原先获取方式--selectNVL(MID,0)intomixTypefromDXC_MIXTYPEwhereName='常温111'andRowNum=1;end; ...