【发布时间】:2012-06-30 05:33:44
【问题描述】:
我正在研究 PL/SQL 游标。我的光标属性有问题。 %FOUND、%NOTFOUND 在隐式和显式游标中的默认值是多少?
我在翻PDF时发现了这句话
LOOP
FETCH c1 INTO my_ename, my_sal, my_hiredate;
EXIT WHEN c1%NOTFOUND;
...
END LOOP;
在第一次提取之前,%NOTFOUND 的计算结果为 NULL。 因此,如果 FETCH 从未成功执行,则永远不会退出循环。这是因为 EXIT WHEN 语句仅在其 WHEN 条件为 真的。为安全起见,请改用以下 EXIT 语句:
EXIT WHEN c1%NOTFOUND OR c1%NOTFOUND IS NULL;
如果游标未打开,使用%NOTFOUND 引用它会引发INVALID_CURSOR。
【问题讨论】:
标签: sql plsql attributes cursor