【发布时间】:2014-05-30 21:21:54
【问题描述】:
请你帮帮我! 我有一个 PL/SQL 程序
`DECLARE
//DECLARION OF CURSOR
BEGIN
OPEN cur_emp:
LOOP
FETCH cur_emp INTO ...;
EXIT WHEN cur_emp%NOTFOUND;
END LOOP;
END;
/ `
问题是这个循环什么时候是无限的? 谢谢
【问题讨论】:
-
所以你是说这个循环没有终止?
-
这是一个标准的光标属性问题(来自手册)。 Oracle 手册中的答案是:“如果 FETCH 从未成功执行,则 EXIT WHEN 条件永远不会为 TRUE,并且循环永远不会退出。”提倡的方法是“EXIT WHEN cur_emp%NOTFOUND OR cur_emp%NOTFOUND IS NULL”,它将解决从未成功执行提取的 NULL 场景。
-
@Patrick - 我每天都学到新东西。谢谢!请将其发布为答案,以便对其进行投票/接受。
标签: sql oracle plsql plsqldeveloper