移転しました。

引数ありのカーソル定義

PL*SQLでカーソルを定義するときには

CURSOR my_cursor IS
    SELECT
        *
    FROM
        my_table;

とかやりますが、このカーソル定義に引数がとれることを知りませんでした。例えば引数の日付に一致するカーソルを定義するとこのようになります。

CURSOR my_cursor (target_date DATE) IS
    SELECT
        *
    FROM
        my_table
    WHERE
        my_date = target_date;

呼出元では

FOR my_record IN my_cursor(SYSDATE) LOOP
END LOOP;

というような感じになります。応用が利かないようで利くPL*SQLです。