从内部IF中过早退出FOR

时间:2013-11-08 22:18:32

标签: oracle plsql

我已经浏览了一段时间,但我没有找到一个成功的答案..对于经验丰富的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不为空时;

非常感谢您的帮助!

1 个答案:

答案 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