UTL_FILE 模块
UTL_FILE 模块提供一组例程,用于读取和写入数据库服务器的文件系统上的文件。
此模块的模式为 SYSIBMADM。
UTL_FILE 模块包括以下内置例程和类型。
| 例程名称 | 描述 |
|---|---|
| FCLOSE 过程 | 关闭指定的文件。 |
| FCLOSE_ALL 过程 | 关闭所有打开的文件。 |
| FCOPY 过程 | 将一个文件中的文本复制到另一个文件。 |
| FFLUSH 过程 | 将未写入的数据写入文件 |
| FOPEN 函数 | 打开文件。 |
| FREMOVE 过程 | 除去文件。 |
| FRENAME 过程 | 重命名文件。 |
| GET_LINE 过程 | 从文件获取一行。 |
| IS_OPEN 函数 | 确定指定的文件是否已打开。 |
| NEW_LINE 过程 | 将行结束字符序列写至文件。 |
| PUT 过程 | 将字符串写至文件。 |
| PUT_LINE 过程 | 将一行写至文件。 |
| PUTF 过程 | 将格式字符串写至文件。 |
| UTL_FILE.FILE_TYPE | 存储文件句柄。 |
以下是应用程序可以接收的具名条件(Oracle 将其称为
异常
)的列表。
| 条件名 | 描述 |
|---|---|
| access_denied | 对文件的访问被操作系统拒绝。 |
| charsetmismatch | 使用 FOPEN_NCHAR 打开了文件,但后续 I/O 操作使用了非 CHAR 函数,如 PUTF 或 GET_LINE。 |
| delete_failed | 无法删除文件。 |
| file_open | 文件已打开。 |
| internal_error | UTL_FILE 模块中出现未处理的内部错误。 |
| invalid_filehandle | 文件句柄不存在。 |
| invalid_filename | 路径中不存在具有指定名称的文件。 |
| invalid_maxlinesize | FOPEN 的 MAX_LINESIZE 值无效。它必须在 1 与 32672 之间。 |
| invalid_mode | FOPEN 中的 open_mode 自变量无效。 |
| invalid_offset | FSEEK 的 ABSOLUTE_OFFSET 自变量无效。它必须大于 0 且小于文件中的总字节数。 |
| invalid_operation | 未能按请求打开或操作文件。 |
| invalid_path | 指定的路径不存在或对数据库不可视 |
| read_error | 无法读取该文件。 |
| rename_failed | 无法重命名该文件。 |
| write_error | 无法写至该文件。 |
使用说明
要引用文件系统上的目录,请使用目录别名。可通过调用 UTL_DIR.CREATE_DIRECTORY 或
UTL_DIR.CREATE_OR_REPLACE_DIRECTORY 过程来创建目录别名。例如,CALL UTL_DIR.CREATE_DIRECTORY('mydir',
'home/user/temp/mydir')@。