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をマスターするための基本と仕組み

 CREATE DIRECTORY