プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

PL/SQL カーソルFORループ

■PL/SQLのカーソルFORループ文について解説する
 
・基本構文


set serveroutput on

DECLARE
  CURSOR <カーソル名> IS <SELECT文>;

BEGIN

  FOR <任意の変数> IN <カーソル名> LOOP
    <処理文>
  END LOOP;
  /

END;
/

 
例)TESTテーブルを全件取得して、カラム「ID」と「NAME」の値を半角スペースで連結


DECLARE
  -- TESTテーブルの全件をカーソル名「CUR」で宣言
  CURSOR CUR IS SELECT * FROM TEST;

BEGIN
  -- カーソル「CUR」を1レコードずつ、変数「RESULT」にセットしてループ処理
  FOR RESULT IN CUR LOOP
    -- TESTテーブルのカラム「ID」と「NAME」の値を半角スペースで連結(||' '||)
    DBMS_OUTPUT.PUT_LINE(RESULT.ID ||' '||RESULT.NAME);
  END LOOP;

END;
/