https://dba.stackexchange.com/questions/3587/oracle-automate-export-unload-of-dataで良い質問を見つけました。そのような構造を使用することは有効ですか?
FOR r IN (SELECT * FROM table) LOOP
UTL_FILE.PUT_LINE(lfFilelog, r.row);
END LOOP;
私はこのようなものを使おうとしています:
CREATE OR REPLACE PROCEDURE p_name(DESTFOLDER in varchar2, FILENAME in varchar2)
IS
V_FILEHANDLE UTL_FILE.FILE_TYPE;
CURSOR dataset IS
SELECT
field1,
field2,
fieldN
FROM
table1,
table2,
(SELECT field3 from table3);
-- WHERE CLAUSE ... and so on..
BEGIN
V_FILEHANDLE := UTL_FILE.FOPEN(DESTFOLDER, FILENAME, 'w');
FOR R IN dataset LOOP
UTL_FILE.PUT_LINE(V_FILEHANDLE, R.ROW);
END LOOP;
END;
/
コンポーネントpls-00302
を定義する必要があることを示すエラーが発生します。ROW
私が理解できない限り、このフィールドはクエリにすでに存在しているはずです。私は正しいですか?
カーソルから単純に行を書き込むことはできますか?