【发布时间】:2014-02-06 19:31:44
【问题描述】:
我收到以下查询的 ORA-01403: no data found 异常。这个错误的可能性是什么?
SELECT trim(name)
INTO fullname
FROM ( SELECT n.name
FROM directory dir, store n
WHERE dir.name = n.name
AND dir.status NOT IN ('F', 'L', 'M')
ORDER BY n.imp, dir.date)
WHERE rownum <= 1;
我该如何处理这个错误?
【问题讨论】:
-
ORA-01403:当您 SELECT INTO 时未找到任何数据且未返回任何行。
-
您告诉我们.. 您是否检查了 STATUS NOT IN ('F','L','M') 目录中的数据?您是否检查了存储中的数据以获取从目录中获取的名称?
-
是的...我已经检查了这两个值。获取至少一个值。
-
似乎有一个 bug,至少在我们的
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit环境中有它!:function bar return varchar2 as x dual%rowtype; begin select * into x from dual where 1=0; return 'test'; end;通常没有返回一个错误并且不返回任何结果 :-/ .. 刚刚提到是因为 捕获 NO_DATA_FOUND 在这里明确有效 正如 Sandeeps 回答中提到的那样:stackoverflow.com/a/21186642/1915920
标签: oracle