• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle之UTL_FILE 包用法详解

mysql 搞代码 4年前 (2022-01-09) 20次浏览 已收录 0个评论

UTL_FILE包可以用来读写操作系统上的文本文件,UTL_FILE提供了在客户端(FORM等等)和服务器端的文件访问功能。

UTL_FILE包可以用来读写操作系统上的文本文件,UTL_FILE提供了在客户端(FORM等等)和服务器端的文件访问功能。

创建测试目录:

新建一个command window;

创建目录:(以system用户登录数据库)

SQL> create or replace directory cux_log_dir as ‘/home/appltest/debug’;

Directory created

赋权限。

SQL> grant read, write on directory cux_log_dir to p来源gaodaimacom搞#^代%!码网ublic;

Grant succeeded

检查目录是否成功创建

select * FROM all_directories dir WHERE dir.DIRECTORY_NAME = ‘CUX_LOG_DIR’;

过程和函数:

  • FOPEN
  • 语法

    UTL_FILE.FOPEN (location IN VARCHAR2,

    filename IN VARCHAR2,

    open_mode IN VARCHAR2,

    max_linesize IN BINARY_INTEGER DEFAULT 1024)RETURN FILE_TYPE;

    Filename略。

    open_mode指明文件打开的模式。有如下几种:

    max_linesize指定文件文本每一行存放的最大字符数。

  • FCLOSE
  • 功能:关闭一个打开的文件。

  • FCLOSE_ALL
  • 结果为:

    结果为:

  • FCOPY
  • 语法

    UTL_FILE.FCOPY ( src_locationIN VARCHAR2,

    src_filenameIN VARCHAR2,

    dest_locationIN VARCHAR2,

    dest_filename IN VARCHAR2,

    start_lineIN BINARY_INTEGER DEFAULT 1,

    end_lineIN BINARY_INTEGER DEFAULT NULL);

    src_filename将要被复制的来源文件

    dest_location 被创建的目标文件存放的目录名。

    dest_filename 从来源文件创建的目标文件。

    测试程序之前:

    测试代码:

    测试程序之后:

  • FFLUSH
  • 语法

    UTL_FILE.FFLUSH (file IN FILE_TYPE);

  • FGETATTR
  • filename IN VARCHAR2,

    fexists OUT BOOLEAN,

    file_length OUT NUMBER,

    block_size OUT BINARY_INTEGER);

    block_size文件系统块的字节大小。

    测试:

    DECLARE
    l_loc all_directories.directory_name%TYPE := ‘CUX_LOG_DIR’;
    l_file utl_file.file_type;
    l_file_exsits BOOLEAN;
    l_file_length NUMBER;
    l_block_size BINARY_INTEGER;
    l_buffer VARCHAR2(1024);
    BEGIN
    utl_file.fgetattr(location => l_loc,
    filename => ‘l001.log’,
    fexists => l_file_exsits,
    file_length => l_file_length,
    block_size => l_block_size);
    IF l_file_exsits THEN

    l_file := utl_file.fopen(location => l_loc,
    filename => ‘l001.log’,
    open_mode => ‘R’);
    dbms_output.put_line(‘file exsits’);
    dbms_output.put_line(‘file length:’ || l_file_length);
    dbms_output.put_line(‘block sieze :’ || l_block_size);
    END IF;
    utl_file.fclose_all;

    END;


    搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:Oracle之UTL_FILE 包用法详解

    喜欢 (0)
    [搞代码]
    分享 (0)
    发表我的评论
    取消评论

    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址