Oracle Database UTL_FILE_DIRのディレクトリ設定について、
2~3週間詰まっていたところがやっと設定できたので、
記事として残しておきたいと思います。
現在ではディレクトリオブジェクトの方が使用されていることと思うので、
そちらを利用されている方はあまり参考にならないかもしれません。
設定内容ですが、日次処理で日々動的に作成されるフォルダへUTL_FILEを使用して
ファイルを吐き出す設定を行いました。
結果的に、サブディレクトリへパスを通すというよりは、
読み書きが許可されているPC内のすべてのフォルダへパスを通す方法で実現したのですが、
その方法をまとめておこうと思います。
設定内容
基本的にUTL_FILE_DIRは
ALTER SYSTEM SET UTL_FILE_DIR = 'C:\hoge' SCOPE = SPFILE;
という形でディレクトリのパスを初期化するのですが、
この方法だと、そのディレクトリにしかファイルを吐き出すことができません。
(サブディレクトリなど、その配下のディレクトリに吐き出そうとすると、エラーが出る)
そのため、2~3週間その他の方法を探していて、先日やっと13年前に作成された
公式のリファレンスにたどり着き、設定できました。
リファレンスの中で紹介されていた方法は
ALTER SYSTEM SET UTL_FILE_DIR = '*' SCOPE = SPFILE;
というものでした。
(リファレンス内でセキュリティ的には推奨されない方法であると記載)
古いシステムを触っている方々など、参考になれば幸いです。
参考文献