mysql utl_file_Oracle的UTL_FILE包

Oracle的包UTL_FIle用于读写操作系统的文件,前提是首先创建Directory对象、授权。然后就可以使用UTL_FILE包中提供的类型、过程、

Oracle的包UTL_FIle用于读写操作系统的文件,前提是首先创建Directory对象、授权。然后就可以使用UTL_FILE包中提供的类型、过程、函数来读取,写入,,操作目录中的文件了。

创建Directory的示例如下:

SQL> CREATE DIRECTORY CZW AS 'D:\';

Directory created

SQL> GRANT READ,WRITE ON DIRECTORY CZW TO SCOTT;

Grant succeeded

1、FILE_TYPE

该类型是UTL_FILE包中定义的记录类型,其成员是私有的,不能够被直接引用。该类型的定义如下:

TYPE file_type IS RECORD(

id BINARY_INTEGER,datatype BINARY_INTEGER

);

2、FOPEN

该函数用于打开文件。使用这个函数最多可以打开50个文件,语法如下:

UTL_FILE.FOPEN(

location IN VARCHAR2,

filename IN VARCHAR2,

open_mode IN VARCHAR2,

max_linesize IN BINARY_INTEGER

)

RETURN file_type;

当成功的执行了该函数之后,就会返回文件句柄,访问该文件可以使用该文件句柄。如果执行失败的话,则会触发例外或者显示错误。注意,当指定文件位置的时候,必须要使用DIRECTORY对象,并且其名称必须为大写。示例如下:

DECLARE

HANDLE UTL_FILE.FILE_TYPE;

BEGIN

HANDLE := UTL_FILE.fopen('CZW','DYWT.TXT','R',1000);

DBMS_OUTPUT.PUT_LINE('D:\DYWT.TXT已经被打开');

END;

3、FOPEN_NCHAR

该函数用于以UNICODE方式打开文件。当使用该函数打开文件之后,读写文件会使用UNICODE取代数据库字符集。语法如下:

UTL_FILE.FOPEN_NCHAR(

location IN VARCHAR2,

filename IN VARCHAR2,

open_mode IN VARCHAR2,

max_linesize IN BINARY_INTEGER)

RETURN file_type;

4、IS_OPEN

该函数用于确定文件是否已经被打开,语法如下:

UTL_FILE.IS_OPEN(file IN FILE_TYPE) RETURN BOOLEAN;

如上所示,file用于指定文件句柄。如果文件已经被打开,则返回TRUE,否则则返回FALSE,该函数的示例如下:

DECLARE

HANDLE UTL_FILE.FILE_TYPE;

BEGIN

IF NOT UTL_FILE.is_open(HANDLE) THEN

HANDLE := UTL_FILE.fopen('CZW','DYWT.TXT','R',1000);

END IF;

DBMS_OUTPUT.PUT_LINE('D:\DYWT.TXT已经被打开');

END;

logo.gif

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值