Oracle中no_data_found异常处理:替代count(*)>0的前期判断
2020-06-08 04:50
211 查看
遍历某个表中的数据,或通过select into 给某个变量赋值时,下面这种情况会抛出no_data_found异常,以前我会用select count(pid) into countPerson进行前期判断,判断countPerson 是否大于0,这样不仅增加了代码的冗余,还是代码可读性变差。
通过下面处理让代码变得清爽:begin exception then end;(存储过程等中可以出现多个begin,end;也可以相互嵌套)
Begin
–可能出现异常
SELECT pid INTO temp_pid FROM t_person WHERE ID_CARD_NUMBER=‘1112233xxxxxxxx2323’;
Exception when no_data_found then
–处理逻辑
DBMS.OUTPUT_PUTLINE(“没有找到该身份证对应的用户!”);
when others then raise;
End;
循环中的使用方法:
Begin
–可能出现异常
for rec_person_id in(select pid from t_person)loop
–处理逻辑(可能出现no_data_found异常)
end loop;
Exception when no_data_found then
–处理逻辑
DBMS.OUTPUT_PUTLINE(“没有数据”);
End;
相关文章推荐
- 【原创】Oracle函数中对于NO_DATA_FOUND异常处理的研究
- select count(*) into 也会报 NO_DATA_FOUND 异常?!
- oracle中关于no_data_found异常的解决
- oracle异常之no_data_found
- 【原创】select count(*) into 也会报 NO_DATA_FOUND 异常?!
- oracle 中的 no_data_found异常 含义
- 关于android studio中使用class.forname()方法动态获取类实例报NO CLASS FOUND异常的几种处理方法
- hadoop 安装出现的几种异常的处理方法,hadoop无法启动,no namenode to stop问题的解决方法,no datanode
- 品优购项目异常No qualifying bean of type [org.springframework.data.redis.core.RedisTemplate] found for depe
- ORACLE SELECT INTO NO_DATA_FOUND问题
- 异常处理:No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer
- 让姐郁闷了2个小时的ORACLE:ORA-01403: no data found 数据未找到 解决
- Druid异常处理:java.lang.RuntimeException: No buckets?? seems there is no data to index.
- Oracle数据库疑问:函数出现no_data_found不报异常
- oracle 仅有多行函数的搜索语句 不会报no_data_found的exception
- Win10用VirtualBox安装Ubuntu虚拟机异常处理:FATAL: NO bootable medium found! System halted
- Win7安装Ubuntu虚拟机异常处理:FATAL: NO bootable medium found! System halted
- NO_DATA_FOUND SQL%NOTFOUND、SQL%ROWCOUNT的区别
- ORACLE 不用写NO_DATA_FUND 异常捕获,开发的一个小技巧!
- 关于select into NO_DATA_FOUND的处理