UTL_FILE包可以用来读写操作系统上的文件,提供了在客户端操作服务器端文件的功能。它提供一套严格的使用标准操作系统文件I/O方式:OPEN、 PUT、 GET和 CLOSE操作;其中,GET方法用于读文件,PUT方法用于写文件。当用户读取或写入一个数据文件的时候,可以使用FOPEN返回的文件句柄,这个文件句柄将用于随后在文件上的所有操作,包含读、写、删除、重命名文件等。
本章介绍使用UTL_FILE读写系统文件的方法,从而可以利用UTL_FILE将表数据导出到文本文件,也可以将文本文件写入表中。
UTL_FILE数据类型
UTL_FILE定义了一种FILE_TYPE记录类型。FILE_TYPE类型是UTL_FILE专有类型。用户不能引用和改变该记录的内容。FILE_TYPE记录类型定义如下:
参数详解:
ID:需要处理的外部文件句柄。
DATATYPE:文件的类型。1表示CHAR 、2表示NCHAR、3表示BINARY。
BYTE_MODE:文件打开后的类型。TRUE表示二进制模式;FALSE表示文本模式。
UTL_FILE相关方法
FOPEN打开文件
FOPEN用于打开指定文件,其返回一个FILE_TYPE类型的活动文件句柄。用户指定文件每行最大的字符数,并且同时可以打开文件最多50个。语法如下:
参数详解
LOCATION:源文件路径。
FILENAME:文件名称,包括文件类型,但不包含文件路径。如果文件名称中包含路径,则 FOPEN忽略此处的路径。在UNIX系统中,文件名不能包含转义符:“/”。
OPEN_MODE:文件的打开模式。包含'r', 'w', 'a' 'rb', 'wb', 'ab'六种:
① 'r':读文件(文本),一定要保证有该文件,不然会报INVALID_PATH异常;
② 'w':写文件(文本),没有该文件的话会自动添加;有的话会覆盖;
③ 'a':追加文件(文本),如果文件不存在,则会以write模式创建此文件;
④ 带有'b'后缀的为使用byte(字节)模式,BLOB打开时一定要用带有'b'后缀的模式。
MAX_LINESIZE:文件每行最大的字符数,包括换行符。最小为1,最大为32767。
说明:读取或者写入文件都需要先调用FOPEN,返回该文件活动句柄,以便做后续操作。
PUT/PUT_LINE/PUT_RAW