在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.