重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

お世話になっております。

PL/SQLのファイル出力を行おうとUTL_FILE_DIRを組んだのですがファイルが更新されません。
エラーも検出されないのでどうしたものかと悩んでおります。
ソースは一番最後に記載します。
現状のやった作業に関しては

・初期化パラメータにUTL_FILE_DIR = *
selectで確認済み

・テキストファイルの確認
 ソースに記載してる通りの所に存在している。(権限もフルコン)

oracleのバージョンは9iです。
よろしくお願いします。



set serveroutput on;

DECLARE
-- ファイルハンドラ
vHandleUTL_FILE.FILE_TYPE;
  vDirname     VARCHAR2(250);
  vFilename     VARCHAR2(250);
vOutputVARCHAR2(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;
/

上記実行するとエラー無しで正常終了しますがテキストファイルは更新されていません。

A 回答 (1件)

何となく、

http://www.shift-the-oracle.com/plsql/utl_file/u … を参考にしている気がするんですが・・
9iを利用しているなら、 http://www.shift-the-oracle.com/plsql/utl_file/c … を参考にしないと。

util_file_dirパラメータ自体は、下位互換(8i互換)のため残されていてに、9iでも動作したはずですが、
8iを利用する予定がないなら、9iの標準的手法でやる方が良いと思いますよ。

正しく動作しない件ですが、Windows版オラクルは、オラクルインスタンスのサービス起動ユーザの権限でファイルアクセスします。
サーバOS側でファイルアクセス権は付与されていますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!