我已经浏览了一段时间,但我没有找到一个成功的答案..对于经验丰富的SQL编码器应该不会有太多麻烦:
我有以下带有IF条件的FOR循环,并且我想在满足IF条件时退出循环
<<OUTER_LOOP>>
FOR I IN T_TITLE.FIRST.. T_TABLE.LAST LOOP
IF T_TABLE(I).VAR_TITLE = PAR_TITLE THEN
V_TITLE_ID = I;
--insert exit here
END IF;
END LOOP;
我不确定是否使用EXIT;退出OUTER_LOOP;或类似EXIT OUTER_LOOP,当V_TITLE_ID不为空时;
非常感谢您的帮助!
答案 0 :(得分:2)
只需使用EXIT
:
FOR I IN T_TITLE.FIRST.. T_TABLE.LAST LOOP
IF T_TABLE(I).VAR_TITLE = PAR_TITLE THEN
V_TITLE_ID = I;
EXIT;
END IF;
END LOOP;
在这种情况下,您不应该使用EXIT WHEN
,因为您无法保存I
的值。
您可以使用EXIT some_loop_label
,但在您的情况下没有必要。但是,当你有嵌套循环时它可能会派上用场。
此处提供更多信息:EXIT in Oracle