ORA-01403 未找到数据

[复制链接]
查看11 | 回复4 | 2020-6-8 08:30:56 | 显示全部楼层 |阅读模式
经常在做select into 会报:ORA-01403未找到数据
我的解决办法是:
declare
v_ch varchar2(20);
begin
SELECT NVL((select 'a'from dual where 1 = 2), '')
into v_ch
FROM dual;
end;
不知道大伙有没有什么更好的解决办法?拿出来分享一下。
回复

使用道具 举报

千问 | 2020-6-8 08:30:56 | 显示全部楼层
如果直接写:
declare
v_ch varchar2(20);
begin
select 'a' into v_ch from dual where 1 = 2;
end;
会报错。
回复

使用道具 举报

千问 | 2020-6-8 08:30:56 | 显示全部楼层
做异常处理啊
回复

使用道具 举报

千问 | 2020-6-8 08:30:56 | 显示全部楼层
在过程函数中我经常用select max(col1),count(1) into vs_col1,vi_count from ta where ...;来避免找不到数据错误,因为每写个查询语句都要exception觉得太麻烦,就是担心ta表数据量过大时影响速度。
回复

使用道具 举报

千问 | 2020-6-8 08:30:56 | 显示全部楼层
原帖由 棉花糖ONE 于 2008-10-27 15:05 发表
做异常处理啊

我也觉得是,如果对每个查询都做一下异常处理,那程序不是非常大,有没有别的方式处理呀?
prt的处理方式是比较没有效率的,如果查询的数据大了,那是非常慢的。
不知道有没有更好的方式处理。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行