• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    oracle中utl_file包读写文件操作实例学习
    在oracle中utl_file包提供了一些操作文本文件的函数和过程,学习了一下他的基本操作
    1.创建directory,并给用户授权
    复制代码 代码如下:

    --创建directory
    create or replace directory TESTFILE as '/home/oracle/zxx/test';
    --给用户授权
    grant read, write on directory TESTFILE to zxx;

    详细介绍
    http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/u_file.htm
    2.写入操作
    复制代码 代码如下:

    ---测试写入
    DECLARE
    filehandle utl_file.file_type; --句柄
    begin
    filehandle := utl_file.fopen('TESTFILE','hello.txt','w'); --打开文件
    utl_file.put_line(filehandle,'Hello Oracle!');--写入一行记录
    utl_file.put_line(filehandle,'Hello World!');
    utl_file.put_line(filehandle,'你好,胖子!');
    utl_file.fclose(filehandle);--关闭句柄
    end;

    备注:
    fopen有一个参数max_linesize,下面是原文解释
    Maximum number of characters for each line, including the newline character, for this file (minimum value 1, maximum value 32767). If unspecified, Oracle supplies a default value of 1024.
    3.读取操作
    复制代码 代码如下:

    --测试读取
    set serveroutput on;
    DECLARE
    filehandle utl_file.file_type;
    filebuffer varchar2(500);
    begin
    filehandle := utl_file.fopen('TESTFILE','hello.txt','R');
    IF utl_file.is_open(filehandle) THEN
    dbms_output.put_line('file is open!');
    END IF;
    loop
    begin
    utl_file.get_line(filehandle,filebuffer);
    dbms_output.put_line(filebuffer);
    EXCEPTION
    WHEN no_data_found THEN
    exit ;
    WHEN OTHERS THEN
    dbms_output.put_line('EXCEPTION1:'||SUBSTR(SQLERRM, 1, 100)) ;
    end;
    end loop;
    utl_file.fclose(filehandle);
    IF utl_file.is_open(filehandle) THEN
    dbms_output.put_line('file is open!');
    else
    dbms_output.put_line('file is close!');
    END IF;
    utl_file.fcopy('TESTFILE', 'hello.txt', 'TESTFILE', 'hello.dat');--复制
    utl_file.fcopy('TESTFILE', 'hello.txt', 'TESTFILE', 'hello2.dat');
    utl_file.fcopy('TESTFILE', 'hello.txt', 'TESTFILE', 'hello.xls');
    utl_file.frename('TESTFILE','hello.xls','TESTFILE','frenamehello.xls',TRUE);--重命名
    utl_file.fremove('TESTFILE', 'hello2.dat');--删除文件
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line('EXCEPTION2:'||SUBSTR(SQLERRM, 1, 100)) ;
    end;

    4.判断文件是否存在(读,重命名,复制,删除都要判断文件是否存在)
    复制代码 代码如下:

    --判断文件是否存在
    DECLARE
    ex BOOLEAN;--文件是否存在
    flen NUMBER;--文件长度? 这个地方不知道怎么理 (原文 file_length The length of the file in bytes. NULL if file does not exist.)
    bsize NUMBER;--文件大小
    BEGIN
    utl_file.fgetattr('TESTFILE', 'hello.txt', ex, flen, bsize);
    IF ex THEN
    dbms_output.put_line('File Exists');
    ELSE
    dbms_output.put_line('File Does Not Exist');
    END IF;
    dbms_output.put_line('File Length: ' || TO_CHAR(flen));
    dbms_output.put_line('Block Size: ' || TO_CHAR(bsize));
    END fgetattr;
    您可能感兴趣的文章:
    • PHP中读写文件实现代码
    • java 读写文件[多种方法]
    • Python open读写文件实现脚本
    • vb.net读写文件代码
    • PHP读写文件的方法(生成HTML)
    上一篇:Oracle中的Connect/session和process的区别及关系介绍
    下一篇:ORACLE 回收站当前状态查询整理
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    oracle中utl_file包读写文件操作实例学习 oracle,中,utl,file,包读写,