UTL_FILE包详解(第二篇)

3.4 PUT()

英文解释:Writes a string to a file

用法:

utl_file.put(file IN FILE_TYPE, buffer IN VARCHAR2);

 

函数原型

    PROCEDURE UTL_FILE.PUT (file IN UTL_FILE.FILE_TYPE, buffer OUT VARCHAR2);

参数说明:

    file   FOPEN返回的文件句柄

    buffer  包含要写入文件的数据缓存;Oracle8.0.3及以上最大允许32kB,早期版本只有1023B

UTL_FILE.PUT输出数据时不会附加行终止符。

异常:

    UTL_FILE.INVALID_FILEHANDLE

    UTL_FILE.INVALID_OPERATION

    UTL_FILE.WRITE_ERROR

3.5 NEW_LINE()

英文解释:Writes one or more operating system-specific line terminators to a file

用法:

utl_file.new_line(file IN FILE_TYPE, lines IN NATURAL := 1);

 

UTL_FILE.NEW_LINE

    在当前位置输出新行或行终止符,必须使用NEW_LINE来结束当前行,或者使用PUT_LINE输出带有行终止符的完整行数据。

函数原型:

    PROCEDURE UTL_FILE.NEW_LINE (file IN UTL_FILE.FILE_TYPE, lines IN NATURAL := 1);

参数说明:

    file   FOPEN返回的文件句柄

    lines   要插入的行数

注意:

    如果不指定lines参数,NEW_LINE会使用默认值1,在当前行尾换行。如果要插入一个空白行,可以使用以下语句:

      UTL_FILE.NEW_LINE (my_file, 2);

    如果lines参数为0或负数,什么都不会写入文件。

异常:

    VALUE_ERROR

    UTL_FILE.INVALID_FILEHANDLE

    UTL_FILE.INVALID_OPERATION

    UTL_FILE.WRITE_ERROR

3.6 PUT_LINE()

英文解释:Writes a line to a file.  Appends an operating system-specific line terminator

用法:

utl_file.put_line(
file      IN FILE_TYPE,
buffer    IN
VARCHAR2,
autoflush IN
BOOLEAN DEFAULT FALSE);

 

UTL_FILE.PUT_LINE

   输出一个字符串以及一个与系统有关的行终止符

函数原型:

   PROCEDURE UTL_FILE.PUT_LINE (file IN UTL_FILE.FILE_TYPE, buffer IN VARCHAR2);

参数说明:

   file   FOPEN返回的文件句柄

   buffer   包含要写入文件的数据缓存;Oracle8.0.3及以上最大允许32kB,早期版本只有1023B

注意:

    在调用UTL_FILE.PUT_LINE前,必须先打开文件。

异常:

    UTL_FILE.INVALID_FILEHANDLE

    UTL_FILE.INVALID_OPERATION

    UTL_FILE.WRITE_ERROR

3.7 PUTF()

英文解释:A PUT procedure with formatting

utl_file.putf(

file   IN file_type,

format IN VARCHAR2,

arg1   IN VARCHAR2 DEFAULT NULL,

arg2   IN VARCHAR2 DEFAULT NULL,

arg3   IN VARCHAR2 DEFAULT NULL,

arg4   IN VARCHAR2 DEFAULT NULL,

arg5   IN VARCHAR2 DEFAULT NULL);

 

UTL_FILE.PUTF

    以一个模版样式输出至多5个字符串,类似C中的printf

函数原型:

PROCEDURE UTL_FILE.PUTF

    (file IN FILE_TYPE

    ,format IN VARCHAR2

    ,arg1 IN VARCHAR2 DEFAULT NULL

    ,arg2 IN VARCHAR2 DEFAULT NULL

    ,arg3 IN VARCHAR2 DEFAULT NULL

    ,arg4 IN VARCHAR2 DEFAULT NULL

    ,arg5 IN VARCHAR2 DEFAULT NULL);

参数说明:

    file   FOPEN返回的文件句柄

    format   决定格式的格式串

    argN   可选的5个参数,最多5个格式串可使用以下样式

    %s  在格式串中可以使用最多5%s,与后面的5个参数一一对应

        %s会被后面的参数依次填充,如果没有足够的参数,%s会被忽视,不被写入文件

    n  换行符。在格式串中没有个数限制

异常:

    UTL_FILE.INVALID_FILEHANDLE

    UTL_FILE.INVALID_OPERATION

    UTL_FILE.WRITE_ERROR

3.8 PUT_RAW ()

英文解释:Accepts as input a RAW data value and writes the value to the output buffer

用法:

utl_file.put_raw(
file      IN file_type, 
buffer    IN
RAW
autoflush IN
BOOLEAN DEFAULT FALSE);

3.9 FCLOSE()

函数作用:关闭命名的文件:

utl_file.fclose(file IN OUT file_type);

utl_file.fclose(file IN OUT file_type);

3.10 FCLOSE_ALL()

函数作用:关闭所有文件

 

DECLARE

  v_output  utl_file.file_type;

  vouthandle utl_file.file_type;

BEGIN

  v_output  := utl_file.fopen(v_pathna, 'test.txt', 'R');

  vouthandle := utl_file.fopen(v_pathna, 'out.txt', 'W');

 

  IF utl_file.is_open(v_output) THEN

    utl_file.fclose_all;

    dbms_output.put_line('Closed All');

  END IF;

END fopen;

3.11 FRENAME()

英文解释:Rename An Operating System File

utl_file.frename (

src_location  IN VARCHAR2,

src_filename  IN VARCHAR2,

dest_location IN VARCHAR2,

dest_filename IN VARCHAR2,

overwrite     IN BOOLEAN DEFAULT FALSE);

 

BEGIN

  utl_file.frename(v_pathna, 'test.txt', v_pathna, 'x.txt', TRUE);

END frename;

/

存储过程FRENAME修改一个文件的名称,这样我们可以把一个文件从一个位置移动到另外一个位置。

函数原型:

FRENAME(location VARCHAR2,

          filename VARCHAR2,

          dest_dir VARCHAR2,

          dest_file VARCHAR2,

          [ overwrite BOOLEAN ])

 参数:

location

目录名称,存放在pg_catalog.edb_dir.dirname中,这个目录包含要改名的文件。

filename

要改名的源文件名称。

dest_dir

目录名称,存放在pg_catalog.edb_dir.dirname中,这个目录是被改名文件所在的目录。

dest_file

原始文件的新名称。

overwrite

如果设置为”true,dest_dir目录中覆盖任何名为dest_file的文件。若设置为”false”,就会产生异常。这是缺省情况。

3.12 FREMOVE()

英文解释:Delete An Operating System File

 

utl_file.fremove(location IN VARCHAR2, filename IN VARCHAR2);

-- dump.txt is created in the FCOPY demo

BEGIN

  utl_file.fremove(v_pathna, 'dump.txt');

END fremove;

/

3.13 FFLUSH()

英文解释:Physically writes pending data to the file identified by the file handle

用法:

utl_file.fflush(file IN file_type);

函数原型:

    PROCEDURE UTL_FILE.FFLUSH (file IN UTL_FILE.FILE_TYPE);

参数说明:

    file   FOPEN返回的文件句柄

注意:

    操作系统可能会缓存数据来提高性能。因此可能调用put后,打开文件却看不到写入的数据。在关闭文件前要读取数据的话可以使用UTL_FILE.FFLUSH

    典型的使用方法包括分析执行进度和调试纪录。

异常:

    UTL_FILE.INVALID_FILEHANDLE

    UTL_FILE.INVALID_OPERATION

    UTL_FILE.WRITE_ERROR

3.14 FCOPY()

英文解释:Copies a contiguous portion of a file to a newly created file

utl_file.fcopy(

src_location  IN VARCHAR2,

src_filename  IN VARCHAR2,

dest_location IN VARCHAR2,

dest_filename IN VARCHAR2,

start_line    IN BINARY_INTEGER DEFAULT 1,

end_line      IN BINARY_INTEGER DEFAULT NULL);

 

BEGIN

  utl_file.fcopy(v_pathna, 'test.txt', v_pathna, 'dump.txt');

END;

 

UTL_FILE.FCOPY

    存储过程FCOPY把一个文件中文本拷贝到另外一个文件中。

函数原型:

FCOPY(location VARCHAR2, filename VARCHAR2,dest_dir VARCHAR2, dest_file VARCHAR2[, start_line PLS_INTEGER [, end_line PLS_INTEGER ] ])

参数

location

    表示目录名称,存放在pg_catalog.edb_dir.dirname中,这个目录包含要拷贝的文件。

filename

    要拷贝文件的名称。

dest_dir

    表示目录名称,存放在pg_catalog.edb_dir.dirname中,是源文件要拷贝到目的目录。

dest_file

    目标文件的名称。

start_line

    源文件中文本行号,用于指定开始拷贝的位置。缺省值是1

end_line

    源文件中最后一行要拷贝文本的行号。如果省略这个参数或者这个参数为空,那么就一直拷贝到文件中最后一行。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21835737/viewspace-760178/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21835737/viewspace-760178/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值