UTL_FILE システムパッケージを使用することで、PLプログラムはオペレーティングシステムのテキストファイルを読み書きできます。UTL_FILE は、オペレーティングシステムのストリームファイルI/Oの制限されたバージョンを提供します。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity Editionは現在サポートされていません。
UTL_FILE権限の説明
ユーザーは UTL_FILE システムパッケージに対する EXECUTE 権限が必要です。
UTL_FILEデータ構造
UTL_FILE システムパッケージは、FILE_TYPE の RECORD 型を定義しています。
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 | ハンドルがまだ開いているかどうかを判断するために使用されます。 |