・Oracle Database 11g PL/SQLにて可変ディレクトリパスでのファイル操作を行いたい
現在実装中のPL/SQLの機能にて、UTL_FILE.FOPEN_NCHAR などを用いて、事前に定義したディレクトリオブジェクト名を指定しての
ファイル操作を行っていたのですが、ファイルパス部分を実行中取得した値によって可変にする必要が出てきました。
PL/SQL実行前に手動で新規にディレクトリオブジェクトの作成などを行えばもちろん問題ないのですが、
実行前の手動での設定、操作などは想定していないので全て自動で行う必要があります。
PL/SQL実行中にディレクトリオブジェクトを操作すれば実現可能かと思い、ネットで調査したところ
自分の実装したいことが可能になりそうな記載は見つけることができませんでした。
/*[1].ファイルオープン*/ FILEHANDLE := UTL_FILE.FOPEN_NCHAR('DIRECTORY_PATH', FILENAME, 'w'); -- データ取得処理 開始. /*[2].ファイル書き込み*/ UTL_FILE.PUT_LINE_NCHAR(FILEHANDLE , DATA); -- データ取得処理 終了. /*[3].ファイルクローズ*/ UTL_FILE.FCLOSE(FILEHANDLE);
上記は現行のファイル出力処理部分ですが、このようにシンプルですが事前定義した
ディレクトリオブジェクト名を指定して、出力を行っています。
このコメント部分[1]の、ファイルオープンの処理を行っている箇所について、
ディレクトリオブジェクトを渡して事前定義した固定のパスを利用するのではなく、
可変の値(パス)によって出力先を決定するようにしたいのです。
見出しの件について、何か良い手法はありませんでしょうか。
ご教授をお願いしたく質問させていただきました。
・補足情報
select * from v$version;
使用しているデータベースはOracle Databaseで、上記SQLを用いて調査したバージョンなどを補足します。
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for 64-bit Windows: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
不足している情報などありましたら随時追記を行います。
よろしくお願いいたします。
あなたの回答
tips
プレビュー