Oracle Fileの読み書き UTL_FILE.PUT_LINE
UTL_FILE.PUT_LINE は、ディレクトリーオブジェクト、または、フォルダ指定のどちらでも対応している。
DECLARE f_handle UTL_FILE.FILE_TYPE; BEGIN f_handle := UTL_FILE.FOPEN('FOLDER', 'FILE.TXT', 'W', 500); UTL_FILE.PUT_LINE(f_handle, 'HOGEHOGE,FUGEFUGE' ); UTL_FILE.FCLOSE(f_handle);
ディレクトリオブジェクトに出力する場合は、’FOLDER’にディレクトリオブジェクト名を設定する。
フォルダ指定をして出力する場合は、'FOLDER'にフォルダを設定する。
フォルダ指定する場合は、初期化パラメータ UTL_FILE_DIR にてフォルダを設定する。
ALTER SYSTEM SET UTL_FILE_DIR='c:/test','c:/test/testsub' SCOPE = SPFILE ;
オラクルの再起動が必要。 登録内容の確認
SELECT NAME, VALUE FROM V$PARAMETER2 WHERE NAME='utl_file_dir' ;
ディレクトリーオブジェクトの一覧
SELECT * FROM ALL_DIRECTORIES
ディレクトリーオブジェクトの作成 CREATE DIRECTORY権限が必要
CREATE DIRECTORY DIR_NAME AS 'C:\DIR_PATH' ;
読み書き権限の付与
GRANT READ,WRITE ON DIRECTORY DIR_NAME TO USER_HOGE;
参考
UTL_FILE の使い方 (UTL_FILE_DIR 編) - オラクル・Oracleをマスターするための基本と仕組み