2012年6月3日日曜日

[Oracle]PL/SQLのカーソルループ

取得したデータを単純に処理したい場合(取得結果のレコードをループの外で必要としない場合)は、カーソルループを使うと良い。
ほとんどのケースが、単純にいけるはずなのでこの実装のほうが良い気がする。

コードを見るとわかるが、カーソルのオープンやクローズ、ループの終了条件がないのがわかる。
begin
  for rec in (select col1 from test)   -- for文のin句にカーソルを指定する。ここで指定するカーソルは、事前に(declare)で定義したカーソルを指定することができる。
  loop
    dbms_output.put_line(rec.col1);
  end loop;
end;