mysql utl_file_Oracle之UTL_FILE 包用法详解

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 public;

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

b92f95ebc727ed7fb71715c4fd11be02.png

结果为:

4c5372693f9acd277f73de72d56595b3.png

a7e699db775c842241cac155763a8cc2.png

结果为:

838c766f7878b13c7f439010ee01f549.png

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从来源文件创建的目标文件。

测试程序之前:

a589eb99fab095d9ce26a88db82b8c08.png

测试代码:

452f0d8fc33f26c265df58e207683e95.png

测试程序之后:

cdc50e2fdacb8cc56e7edd3e3e36b79c.png

50f4f18b22bc3dd54689ee861fa182fd.png

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;

logo.gif

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值