`DECLARE
//DECLARION OF CURSOR
BEGIN
OPEN cur_emp:
LOOP
FETCH cur_emp INTO ...;
EXIT WHEN cur_emp%NOTFOUND;
END LOOP;
END;
/ `
问题是这个循环是无限的吗? 谢谢
答案 0 :(得分:0)
Oracle关于游标属性的文档解决了这种无限循环风险。 Oracle手册的答案是:“如果FETCH永远不会成功执行,则EXIT WHEN条件永远不会为TRUE,并且永远不会退出循环。”倡导的方法如下:
EXIT WHEN cur_emp%NOTFOUND OR cur_emp%NOTFOUND IS NULL
这将解决从未成功执行fetch的NULL场景。