FOPEN 関数 - ファイルをオープンする

FOPEN 関数は、入出力用のファイルをオープンします。

構文

構文図を読む構文図をスキップするUTL_FILE.FOPEN (location,filename, open_mode,max_linesize)

戻り値

この関数は、オープンされたファイルのファイル・ハンドルを示すタイプ UTL_FILE.FILE_TYPE の値を戻します。

関数のパラメーター

location
ファイルを含むディレクトリーの別名を指定する、タイプ VARCHAR (128) の入力引数。
filename
ファイルの名前を指定する、タイプ VARCHAR (255) の入力引数。
open_mode
ファイルをオープンするモードを指定する、タイプ VARCHAR (10) の入力引数。
a
ファイルへの追加
r
ファイルからの読み取り
w
ファイルへの書き込み
max_linesize
行の最大サイズを文字数で指定する、タイプ INTEGER のオプション入力引数。デフォルト値は 1024 バイトです。 読み取りモードでは、max_linesize を超える行を読み取ろうとすると、 例外がスローされます。 書き込みモードおよび付加モードでは、max_linesize を超える行を書き込もうとすると、 例外がスローされます。 行の終わり文字は、行サイズにカウントされません。

許可

UTL_FILE モジュールに対する EXECUTE 特権。

ファイルをオープンし、いくつかのテキストをファイルに書き込んだ後、ファイルをクローズします。


SET SERVEROUTPUT ON@

CREATE OR REPLACE PROCEDURE proc1()
BEGIN
  DECLARE  v_filehandle    UTL_FILE.FILE_TYPE;
  DECLARE  isOpen          BOOLEAN;
  DECLARE  v_dirAlias      VARCHAR(50) DEFAULT 'mydir';
  DECLARE  v_filename      VARCHAR(20) DEFAULT 'myfile.csv';  
  CALL UTL_DIR.CREATE_OR_REPLACE_DIRECTORY('mydir', '/tmp');
  SET v_filehandle = UTL_FILE.FOPEN(v_dirAlias,v_filename,'w');
  SET isOpen = UTL_FILE.IS_OPEN( v_filehandle );
    IF isOpen != TRUE THEN
      RETURN -1;
    END IF;
  CALL DBMS_OUTPUT.PUT_LINE('Opened file: ' || v_filename);
  CALL UTL_FILE.PUT_LINE(v_filehandle,'Some text to write to the file.');
  CALL UTL_FILE.FCLOSE(v_filehandle);
END@

CALL proc1@

この例では、以下の出力が結果として戻ります。

Opened file: myfile.csv