循环中的continue功能

时间:2021-05-20 19:40:42

  在oracle存储过程中,有时我们希望在循环中为某种情况时不做任何处理,类似于c语言中的continue,跳过本次循环;在oracle 11g中好像增加了这个关键字,在之前版本中我们可以通过如下方式来实现相似的效果:

  使用if  else 括住所有循环部分来处理,例子中当i=0时跳出本次循环。

loop
if i=0 then
null;
else
/*
此处是大段的其他操作代码
*/
end if; end loop;

  有时候可能上面的else部分有大段段的代码,此时可读性较差,我们可以用goto来处理

loop
if i=0 then
goto nextone; end if; /*
此处是大段的其他操作代码
*/
<<nextone>>
null;
end loop;

  即在循环结束的地方设置跳跃点,注意标签后要跟一个执行语句,此处用了一个空语句null.