UTL_FILE システムパッケージを使用すると、PLプログラムはオペレーティングシステムのテキストファイルを読み書きできます。UTL_FILE は、オペレーティングシステムのストリームファイルI/Oの制限されたバージョンを提供します。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity Editionは現在サポートされていません。
UTL_FILE権限の説明
ユーザーは UTL_FILE システムパッケージに対する EXECUTE 権限を持っている必要があります。
UTL_FILEデータ構造
UTL_FILE システムパッケージは、RECORD 型として FILE_TYPE を定義しています。
FILE_TYPE の内容は UTL_FILE システムパッケージのプライベートな内容であるため、参照または変更することはできません。
構文
TYPE file_type IS RECORD (
id BINARY_INTEGER,
datatype BINARY_INTEGER,
byte_mode BOOLEAN);
パラメータの説明
パラメータ |
説明 |
|---|---|
| id | 内部ファイルハンドル番号の数値。 |
| datatype | ファイルが CHAR ファイル、Nchar ファイル、またはその他(バイナリ)であるかどうかを示します。 |
| byte_mode | ファイルをバイナリファイルとして開くか、テキストファイルとして開くかを指定します。 |
UTL_FILE例外状況
エラー名 |
意味 |
|---|---|
| INVALID_PATH | ファイルのパスが無効です。 |
| INVALID_MODE | FOPEN 関数の open_mode パラメータが無効です。 |
| INVALID_FILEHANDLE | ファイルハンドルが無効です。 |
| INVALID_OPERATION | サポートされていないファイル操作です。 |
| READ_ERROR | 読み取りキャッシュが小さすぎるか、読み取り中にオペレーティングシステム関連のエラーが発生しました。 |
| WRITE_ERROR | 書き込み中にオペレーティングシステム関連のエラーが発生しました。 |
| INTERNAL_ERROR | 内部で定義されたPLエラーです。 |
| FILE_OPEN | ファイルを開く際にエラーが発生しました。 |
| INVALID_MAXLINESIZE | FOPEN 関数のパラメータ max_linesize が無効です。サポート範囲は [1,32767] です。 |
| INVALID_FILENAME | パラメータとして指定されたファイル名が無効です。 |
| ACCESS_DENIED | 権限不足のためファイルにアクセスできません。 |
| INVALID_OFFSET | 考えられる原因は以下の通りです。
|
UTL_FILEサブプログラムの概要
次の表は、OceanBaseデータベースの現在のバージョンでサポートされているUTL_FILEサブプログラムとその簡単な説明です。
サブプログラム |
説明 |
|---|---|
| FCLOSE | ファイルを閉じます。 |
| FCOPY | ソースファイルからターゲットファイルに行をコピーします。 |
| FCLOSE_ALL | 現在のセッションで UTL_FILE が開いているすべてのファイルを閉じます。 |
| FFLUSH | バッファ内のデータをファイルに刷新します。 |
| FOPEN | ユーザーが指定した情報に基づいてファイルを開きます。 |
| FOPEN_NCHAR | NCHARモードでファイルを開きます。 |
| FGETPOS | ファイルの現在のアクセス位置(オフセット)をバイト単位で取得します。 |
| FGETATTR | オペレーティングシステムのファイル属性(存在、サイズなど)を読み取るプロシージャです。 |
| F_REMOVE | ディスク上のファイルを削除します(削除権限が必要)。UNIXの rm コマンドに類似しています。 |
| FRENAME | 既存のファイルを新しい名前にリネームします。UNIXの mv コマンドに類似しています。 |
| FSEEK | 指定されたバイト数だけファイルの位置を前方または後方に調整します。 |
| NEW_LINE | 1つ以上のオペレーティングシステム指定の行終端文字をファイルに書き込みます。 |
| NEW_LINE_NCHAR | ファイルに改行文字を挿入するために使用されます。 |
| GET_RAW | オペレーティングシステムのファイルから生のバイナリデータを読み取るために使用されます。 |
| GET_LINE | 1行のテキストを読み取ります。 |
| GET_LINE_NCHAR | Unicodeモードでテキストファイルから1行の内容を読み取るために使用されます。 |
| PUT | 文字列をファイルに書き込みます。 |
| PUT_RAW | 入力パラメータをRAW形式で指定されたファイルに書き込むストアドプロシージャです。 |
| PUT_LINE | 1行をファイルに書き込み、オペレーティングシステムが指定する行終端文字を付加します。 |
| PUT_NCHAR | NCHARモードで現在の行バッファに追加するために使用されます。 |
| PUT_LINE_NCHAR | ファイルにUnicode文字を書き込むストアドプロシージャです。 |
| PUTF | フォーマット文字列を指定されたファイルに書き込むために使用されます。 |
| PUTF_NCHAR | NCHAR方式でフォーマットを指定したファイルに書き込むために使用されます。 |
| IS_OPEN | ハンドルがまだ開いているかどうかを判断するために使用されます。 |