カーソルの概要
カーソルは、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
解説
処理の流れは以下の通り。
- 宣言部で、SELECT文を作成してカーソルを宣言する
- カーソルをOPENし、FETCHで1行取り出す
- FOR IN LOOPで、カーソルを1行ずつ取り出して、処理する
よく使うのは、FORで全件のレコードを1行ずつ取り出して、何かしらの処理を行うことが多いです。