2012年6月7日木曜日

[Oracle]PL/SQLのループでcontinue

Oracle11gから、ループ処理内でcontinueが使えるようになったようです。

例えば奇数の場合だけ処理を行うようなループは下のコードのようになります。
begin
  for i in 1 .. 10
  loop
    continue when mod(i, 2) = 0;  -- continueを使って偶数の場合は処理をスキップ
    dbms_output.put_line(i);
  end loop;
end;
/

処理結果を見ると奇数の場合だけ処理されていることがわかります。
23:14:04 SQL> /
1
3
5
7
9