- シンプルなカーソルの使用例:
DECLARE
CURSOR c_emp IS
SELECT employee_id, first_name, last_name
FROM employees;
v_emp_id employees.employee_id%TYPE;
v_first_name employees.first_name%TYPE;
v_last_name employees.last_name%TYPE;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp INTO v_emp_id, v_first_name, v_last_name;
EXIT WHEN c_emp%NOTFOUND;
-- データの処理
-- ここに処理内容を記述します
END LOOP;
CLOSE c_emp;
END;
- カーソルのパラメータを使用した例:
DECLARE
CURSOR c_emp (p_dept_id IN NUMBER) IS
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = p_dept_id;
v_emp_id employees.employee_id%TYPE;
v_first_name employees.first_name%TYPE;
v_last_name employees.last_name%TYPE;
BEGIN
OPEN c_emp(100); -- 部門IDを指定してカーソルを開く
LOOP
FETCH c_emp INTO v_emp_id, v_first_name, v_last_name;
EXIT WHEN c_emp%NOTFOUND;
-- データの処理
-- ここに処理内容を記述します
END LOOP;
CLOSE c_emp;
END;
- カーソルのFORループを使用した例:
DECLARE
CURSOR c_emp IS
SELECT employee_id, first_name, last_name
FROM employees;
BEGIN
FOR emp_rec IN c_emp LOOP
-- データの処理
-- ここに処理内容を記述します
END LOOP;
END;
これらは、カーソルを使用したデータ処理の一部の例です。実際の処理に合わせてカーソルの使用方法を適切にカスタマイズしてください。