UTL_FILE 模块

UTL_FILE 模块提供一组例程,用于读取和写入数据库服务器的文件系统上的文件。

此模块的模式为 SYSIBMADM。

UTL_FILE 模块包括以下内置例程和类型。

表 1. 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 将其称为
异常
)的列表。
表 2. 应用程序的具名条件
条件名 描述
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')@