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统计时间段内每一天的数据,需要的朋友可以参考下
    2018-03-03
  • Oracle表空间不足的两种解决办法

    Oracle表空间不足的两种解决办法

    这篇文章主要介绍了Oracle表空间不足的两种解决办法,需要的朋友可以参考下
    2017-10-10
  • Oracle(90)数据库如何创建用户(User)

    Oracle(90)数据库如何创建用户(User)

    这篇文章主要介绍了在Oracle数据库中创建用户的过程,包括连接到数据库、创建用户、分配权限、分配表空间和设置账户状态,提供了详细的步骤和代码示例,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • SQL案例学习之字符串的合并与拆分方法总结

    SQL案例学习之字符串的合并与拆分方法总结

    这篇文章主要给大家介绍了关于SQL案例学习之字符串的合并与拆分的相关资料,文中分别介绍了两种方法,对大家学习或者使用oracle具有一定的参考学习价值,需要的朋友可以参考下
    2022-08-08
  • Oracle 10g client 安装图解教程

    Oracle 10g client 安装图解教程

    这篇文章主要介绍了Oracle 10g client 安装图解教程,需要的朋友可以参考下
    2017-03-03
  • Oracle教程之pl/sql简介

    Oracle教程之pl/sql简介

    这篇文章主要介绍了Oracle的pl/sql概念与用法,结合实例形式分析了Oracle数据库sql扩展的实现技巧,需要的朋友可以参考下
    2016-03-03
  • Oracle数据库把多行转一列逗号分割两种方法

    Oracle数据库把多行转一列逗号分割两种方法

    Oracle将行转换为列是指将关系型数据库中的行数据转换为列数据的操作,这篇文章主要给大家介绍了关于Oracle数据库把多行转一列逗号分割两种方法的相关资料,需要的朋友可以参考下
    2024-07-07
  • 深入浅析Oracle数据库管理之创建和删除数据库

    深入浅析Oracle数据库管理之创建和删除数据库

    本篇文章给大家介绍oracle数据库管理之创建和删除数据库,本文从数据库管理概述、数据库管理方法、数据库的准则、使用dbca创建数据库、使用dbca删除数据库等五大方面展开话题,需要的朋友一起学习吧
    2015-10-10
  • Linux服务器下oracle实现rman自动备份的方式

    Linux服务器下oracle实现rman自动备份的方式

    为确保oracle数据库数据的安全和一致性,一般我们都需要利用备份手段进行数据库的备份,在oracle数据库中,rman因其强大的功能和完善的手段,成为数据库备份的首选,故以下通过两种方式配置脚本,实现rman自动备份,需要的朋友可以参考下
    2024-11-11
  • Windows Oracle常见服务介绍

    Windows Oracle常见服务介绍

    注:SID - 数据库标识 HOME_NAME - Oracle Home名称,如OraHome92、OraHome81
    2009-05-05

最新评论