• 締切済み

UTL_FILE_DIRについて

お世話になっております。 PL/SQLのファイル出力を行おうとUTL_FILE_DIRを組んだのですがファイルが更新されません。 エラーも検出されないのでどうしたものかと悩んでおります。 ソースは一番最後に記載します。 現状のやった作業に関しては ・初期化パラメータにUTL_FILE_DIR = * selectで確認済み ・テキストファイルの確認  ソースに記載してる通りの所に存在している。(権限もフルコン) oracleのバージョンは9iです。 よろしくお願いします。 set serveroutput on; DECLARE -- ファイルハンドラ vHandle UTL_FILE.FILE_TYPE;   vDirname      VARCHAR2(250);   vFilename      VARCHAR2(250); vOutput VARCHAR2(32767); error_code       NUMBER(5); error_message VARCHAR2(2048); BEGIN vDirname := 'c:'; vFilename := 'test.txt'; vHandle := UTL_FILE.FOPEN(vDirname, vFilename, 'w'); vOutput := ファイル出力です'; UTL_FILE.PUT_LINE(vHandle, vOutput); UTL_FILE.FCLOSE(vHandle); EXCEPTION WHEN OTHERS THEN error_code := sqlcode; error_message := sqlerrm; dbms_output.put_line('エラーコード:' || error_code); dbms_output.put_line('エラーメッセージ:' || error_message); END; / 上記実行するとエラー無しで正常終了しますがテキストファイルは更新されていません。

みんなの回答

回答No.1

何となく、 http://www.shift-the-oracle.com/plsql/utl_file/utl_file_dir.html を参考にしている気がするんですが・・ 9iを利用しているなら、 http://www.shift-the-oracle.com/plsql/utl_file/create-directory.html を参考にしないと。 util_file_dirパラメータ自体は、下位互換(8i互換)のため残されていてに、9iでも動作したはずですが、 8iを利用する予定がないなら、9iの標準的手法でやる方が良いと思いますよ。 正しく動作しない件ですが、Windows版オラクルは、オラクルインスタンスのサービス起動ユーザの権限でファイルアクセスします。 サーバOS側でファイルアクセス権は付与されていますか?