【发布时间】:2017-02-28 11:36:02
【问题描述】:
我有以下PL/SQL 代码:
BEGIN
FOR c IN (SELECT ...) LOOP
<code1>;
END LOOP;
<code2>;
EXCEPTION WHEN NO_DATA_FOUND THEN
NULL;
END;
此代码应在一个循环内多次运行code1,并在完成此循环后执行code2。否则,如果 SELECT 查询未找到数据,那么我预计这会引发异常并超出 code2,但这不会发生。为什么?
【问题讨论】:
-
不,这不是应该发生的!如果没有数据,则循环运行 0 次 - 即它跳过并执行 code2
-
好吧,就是这样,虽然我预计 SELECT 语句中的 0 条记录会引发异常,那么如果没有记录,我该如何解决我的问题以避免执行 code2?
标签: sql oracle exception-handling