スポンサーリンク

[PL/SQL] カーソルの基礎

カーソルの概要

カーソルは、SELECTした結果を1行ずつ読み込むために、使います。

カーソルの使い方

ソースコード

DECLARE
  CURSOR emp_cur IS
  SELECT empid, name, age FROM emp;

  emp_recode emp_cur%ROWTYPE;
BEGIN
  OPEN emp_cur;
    FETCH emp_cur INTO emp_recode;
      DBMS_OUTPUT.PUT_LINE('EMPID:' || emp_recode.EMPID);
  CLOSE emp_cur;

  FOR emp_recode IN emp_cur LOOP
    DBMS_OUTPUT.PUT_LINE('NAME:' || emp_recode.NAME);
  END LOOP;
END;

実行結果

EMPID:1
NAME:TANAKA
NAME:SATO
NAME:ABE

解説

処理の流れは以下の通り。

  1. 宣言部で、SELECT文を作成してカーソルを宣言する
  2. カーソルをOPENし、FETCHで1行取り出す
  3. FOR IN LOOPで、カーソルを1行ずつ取り出して、処理する

よく使うのは、FORで全件のレコードを1行ずつ取り出して、何かしらの処理を行うことが多いです。