e-learning、オラクル研修、LMS(学習管理システム)のiStudy

e-learning、オラクル研修、LMS(学習管理システム)のiStudy

第48回 「UTL_FILEパッケージを使ったファイル入出力」

2013.02.04

こんにちは。インストラクターの蓑島です。
第43回から前回まで動的SQLについて解説してきました。
動的SQLでは、実行時までSQL文が決まらない(例えば、表名や列名が決まらない)ような場合であっても対応できるということが、大きなメリットでしたね。
これを参考にして皆さんのアプリケーションのヒントになれば幸いに思います。

☆☆☆☆

さて今回からテーマはガラっと変わり、UTL_FILEパッケージを使ったファイル入出力について解説します。

PL/SQLプログラムで、ファイルを直接読んだり書いたりできたら便利だと思いませんか?
例えばファイルに書き出すことができれば、そのファイルをデータベースとは無関係の他のアプリケーションでも入力できます。あるいは、PL/SQLプログラムでファイルから入力できれば、それを読み込んで、文字列分解して、他の表へINSERTするデータとしても使えます。
このようにPL/SQLプログラムからファイルに対して入出力できれば、様々なことに応用できるので、プログラムの応用範囲が大きく広がります。

それを可能にしてくれるのが、UTL_FILEパッケージです。

UTL_FILEパッケージはオラクルデータベースに標準で組み込まれているパッケージです。
このようなパッケージをビルトイン・パッケージといいます。ビルトイン・パッケージを使うことで、PL/SQLの基本機能では不可能なことを可能にしてくれるわけです。

では、詳細は次回以降で解説しますが、以下にサンプルコードを掲載しておきますので、今回は雰囲気をつかんでください。

SQL> DECLARE
  2     FH   UTL_FILE.FILE_TYPE;
  3  BEGIN
  4     FH := UTL_FILE.FOPEN('DATA_PUMP_DIR','test.txt','W');
  5     UTL_FILE.PUT_LINE(FH,'こんにちは。');
  6     UTL_FILE.PUT_LINE(FH,'お元気ですか?');
  7     UTL_FILE.FCLOSE(FH);
  8  END;
  9  /

PL/SQLプロシージャが正常に完了しました。

上記のコードにより、DATA_PUMP_DIRというディレクトリにtest.txtというファイルが作成され、そのファイルに

こんにちは。
お元気ですか?

という2行が書かれるわけです。

では詳細は次回解説します。ご期待ください。

先頭へ戻る