ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
動的SQLでカーソルを使用してレコードを複数SELECTする(CURSOR)
スポンサード リンク

DBからレコードを、動的SQLでカーソルを使用して複数件取得します。

例1) 表「emp」を動的SQLでカーソルを使用して検索します。
declare

 -- カーソル変数のオブジェクト定義
 type emp_cur_type is ref cursor;
  -- カーソル変数定義
 emp_sur emp_cur_type;

 v_dept_id emp.dept_id%type;

 wk_emp_id emp.emp_id%type;
 wk_dept_id emp.dept_id%type;
 wk_name emp.name%type;

begin

 v_dept_id := 'D01';

 -- カーソル変数オープン。ここで、バインド変数に動的に変更される
 -- 検索条件「dept_id」を指定しています。
 open emp_sur for 'select emp_id,dept_id,name from emp 
   where dept_id = :dept_id' using v_dept_id;

 loop
  -- フェッチ時に、取得項目を変数に代入。
  fetch emp_sur into wk_emp_id,wk_dept_id,wk_name;
  -- レコードが無くなればループ終了
  exit when emp_sur%notfound;

  dbms_output.put_line('コード1:' || wk_emp_id);
  dbms_output.put_line('コード2:' || wk_dept_id);
  dbms_output.put_line('名前:' || wk_name);
 end loop;

end;

スポンサード リンク


レコードを1件SELECTする(SELECT〜INTO)
明示的カーソルでレコードを複数件SELECTする(CURSOR)
暗黙的カーソルでレコードを複数件SELECTする(CURSOR)
カーソルの属性
動的SQLでレコードを1件SELECTする(EXECUTE IMMEDIATE)
動的SQLでカーソルを使用してレコードを複数SELECTする(CURSOR)
コミット・ロールバック(COMMIT、ROLLBACK)

PL/SQL へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ