プロシージャ本体内に動的にカーソルを作成したいのですが、コードの下ではなくfor ループを使用する必要があります。動的カーソルを実行しましたが、for ループを使用できません。
PROCEDURE myprocedure
AS
LV_TEST_CUR SYS_REFCURSOR;
LV_QUERY VARCHAR2(200);
LV_DATE DATE;
BEGIN
LV_QUERY:='select sysdate as mydate from dual';
OPEN LV_TEST_CUR FOR LV_QUERY;
/*FOR CUR_VAR IN LV_TEST_CUR
LOOP
dbms_output.put_line(CUR_VAR.mydate);
end LOOP;
*/
LOOP
FETCH LV_TEST_CUR INTO LV_DATE;
EXIT
WHEN LV_TEST_CUR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(LV_DATE);
END LOOP;
CLOSE LV_TEST_CUR;
END myprocedure;
コメント付きコード (for ループ) を使用している場合、エラーが発生します
PLS-00221: プロシージャではないか、未定義です。
動的カーソルで for ループを使用することは可能ですか?