「ストアドプロシージャ(PL/SQL)でファイル操作」の記事で、Oracle の UTL_FILE でファイル操作をする方法を紹介しましたが、その際ファイルパスについては詳しく触れませんでした。

ストアドプロシージャ(PL/SQL)でファイル操作ストアドプロシージャ内でファイルを読み込みたいなっと思って調べてみたら UTL_FILE というライブラリがあることが判明しました。
...
実は Oracle では CREATE DIRECTORY を使ってディレクトリのオブジェクトを作成をすることが可能です。
これによって、ディレクトリのエイリアス名を指定することで簡単にファイルパスを定義することができます。
ディレクトリのエイリアス
例えば /home/recv_dir を RECV_KUMA という名前で使用するには、下記のように定義します。
1 2 3 4 5 6 7 | -- ディレクトリオブジェクト作成 CREATE DIRECTORY RECV_KUMA AS '/home/recv_dir'; -- ディレクトリの権限 GRANT READ ON DIRECTORY RECV_KUMA TO user_name; (ストアド) -- ファイルオープン fileHandle = UTL_FILE.FOPEN('RECV_KUMA', 'ファイル名', 'r'); |
ストアドの注意点
ちなみにストアドでは、ディレクトリオブジェクト名を大文字で指定しないとダメなようです。
また、このディレクトリの作成や現在の状態なども Object Browser(オブジェクトブラウザ)を使えば閲覧や操作も簡単にできます。
それにしても、Oracle には知らない機能がまだまだたくさんあります。
MySQL や PostgreSQL の方がシンプルで使いやすく感じるなぁ。