UTL_FILE システムパッケージを使用することで、PLプログラムはOSのテキストファイルを読み書きできます。UTL_FILE は、OSのストリームファイルI/Oの制限されたバージョンを提供します。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供しています。
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 | 読み取りキャッシュが小さすぎる、または読み取り中にOS関連のエラーが発生しました。 |
| WRITE_ERROR | 書き込み中にOS関連のエラーが発生しました。 |
| INTERNAL_ERROR | 内部で定義されたPLエラー。 |
| FILE_OPEN | ファイルを開く際にエラーが発生しました。 |
| INVALID_MAXLINESIZE | FOPEN関数のパラメータmax_linesizeが無効です。サポート範囲は[1,32767]です。 |
| INVALID_FILENAME | パラメータファイル名が無効です。 |
| ACCESS_DENIED | 権限不足のためファイルにアクセスできません。 |
| INVALID_OFFSET | 考えられる原因は以下のとおりです:
|
UTL_FILEサブルーチンの概要
以下の表は、OceanBaseデータベースの現行バージョンでサポートされているUTL_FILEサブルーチンとその簡潔な説明です。
| サブルーチン | 説明 |
|---|---|
| FCLOSE | ファイルを閉じます。 |
| FFLUSH | キャッシュ内のデータをファイルにフラッシュします。 |
| FOPEN | ユーザーが指定した情報に基づいてファイルを開きます。 |
| FGETPOS | ファイルの現在アクセスされている位置(オフセット)をバイト単位で取得します。 |
| FREMOVE | ディスク上のファイルを削除します(削除権限が必要)。UNIXのrmコマンドに似ています。 |
| FRENAME | 既存のファイルを新しい名前にリネームします。UNIXのmvコマンドに似ています。 |
| FSEEK | 指定されたバイト数だけファイルの位置を前方または後方に調整します。 |
| NEW_LINE | 1つまたは複数のOS指定の行終了文字をファイルに書き込みます。 |
| GET_LINE | 1行のテキストを読み取ります。 |
| PUT | 文字列をファイルに書き込みます。 |
| PUT_LINE | 1行をファイルに書き込み、OS指定の行終了文字を付加します。 |