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

 更新时间:2013年03月12日 16:46:49   作者:  
在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;

相关文章

  • Oracle表中已有数据修改字段类型方式

    Oracle表中已有数据修改字段类型方式

    这篇文章主要介绍了Oracle表中已有数据修改字段类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Oracle中在pl/sql developer修改表的2种方法

    Oracle中在pl/sql developer修改表的2种方法

    Oracle中在pl/sql developer修改表的2种方法,需要的朋友可以参考一下
    2013-03-03
  • oracle in长度限制的两个快速解决方法

    oracle in长度限制的两个快速解决方法

    这篇文章主要给大家介绍了关于oracle in长度限制的两个快速解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • PL/SQL编程经验小结开发者网络Oracle

    PL/SQL编程经验小结开发者网络Oracle

    PL/SQL编程经验小结开发者网络Oracle...
    2007-03-03
  • Oracle数据库对象的使用详解

    Oracle数据库对象的使用详解

    这篇文章主要介绍了Oracle数据库对象的使用,文章中涉及到的命令希望大家认真学习,对大家今后的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Oracle 12.2监听无法启动解决方法

    Oracle 12.2监听无法启动解决方法

    这篇文章主要介绍了Oracle 12.2监听无法启动解决方法,需要的朋友可以参考下
    2017-11-11
  • Oracle表空间详解

    Oracle表空间详解

    这篇文章主要介绍是Oracle表空间管理,文章中有详细的代码示例,对学习有一定的帮助,感兴趣的小伙伴可以参考一下
    2023-04-04
  • ORACLE常用数值函数、转换函数、字符串函数

    ORACLE常用数值函数、转换函数、字符串函数

    本文并不准备介绍全部的oracle函数,当前情势下,俺也还没这个时间,需要学习的东西太多了,要把多数时间花在学习经常能用上的技术方面:),所以如果是准备深入了解所有oracle函数的朋友,还是去关注:Oracle SQL Reference官方文档更靠谱一些。
    2009-11-11
  • Oracle中的instr()函数应用及使用详解

    Oracle中的instr()函数应用及使用详解

    这篇文章主要介绍了Oracle中的instr()函数应用及使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • oracle导入导出表时因一个分号引发的惨案

    oracle导入导出表时因一个分号引发的惨案

    这篇文章主要给大家介绍了关于oracle导入导出表时因一个分号引发的惨案,文中通过示例代码介绍的非常详细,对大家学习或者使用oracle具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08

最新评论