PL/SQLでカーソルを使用したデータの処理方法


  1. シンプルなカーソルの使用例:
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;
  1. カーソルのパラメータを使用した例:
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;
  1. カーソルの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;

これらは、カーソルを使用したデータ処理の一部の例です。実際の処理に合わせてカーソルの使用方法を適切にカスタマイズしてください。