您的位置:首页 > 数据库 > Oracle

oracle的文件(UTL_FILE)操作

2015-05-20 23:03 316 查看
oracle提供了一个能否对操作系统操作的工具包UTL_FILE

一 oracle的directory

想要oracle对文件进行操作就要先创建一个directory来指向操作系统目录下的具体某个目录

Create Directory REPORT_DIR As ‘/home/oracle/chenlong/’

REPORT_DIR 为创建directory的名称

/home/oracle/chenlong/ 为具体的操作系统目录

想对directory下的文件进行操作,就要授予相关的权限:

grant read,Write On Directory Report_DIR to SCOTT

把directory的读写权限给给scott

二 UTL_FILE工具包

1,关闭文件

UTL_FILE.FCLOSE (file IN OUT FILE_TYPE);

2,复制文件

UTL_FILE.FCOPY (

src_location IN VARCHAR2, –员

src_filename IN VARCHAR2,

dest_location IN VARCHAR2,

dest_filename IN VARCHAR2,

start_line IN BINARY_INTEGER DEFAULT 1,

end_line IN BINARY_INTEGER DEFAULT NULL);

3,打开文件 只能同时打开50个文件

UTL_FILE.FOPEN (

location IN VARCHAR2,

filename IN VARCHAR2,

open_mode IN VARCHAR2,

max_linesize IN BINARY_INTEGER DEFAULT 1024) 最小为1 最大为32767

RETURN FILE_TYPE;

open_mode:

Specifies how the file is opened. Modes include:

r – read text 读字符

w – write text 写

a – append text 添加

rb – read byte mode 读字节

wb – write byte mode

ab – append byte mode

If you try to open a file specifying ‘a’ or ‘ab’ for open_mode but the file does not exist, the file is created in write mode.

如果文件打开的方式为 a,ab,文件不存在,那么文件将会创建

4,删除文件

UTL_FILE.FREMOVE (

location IN VARCHAR2,

filename IN VARCHAR2);

5,重命名文件

UTL_FILE.FRENAME (

src_location IN VARCHAR2,

src_filename IN VARCHAR2,

dest_location IN VARCHAR2,

dest_filename IN VARCHAR2,

overwrite IN BOOLEAN DEFAULT FALSE);

6,读取文件内容

UTL_FILE.GET_LINE (

file IN FILE_TYPE,

buffer OUT VARCHAR2,

len IN PLS_INTEGER DEFAULT NULL);

文件打开模式必须为 r

7,文件是否打开

UTL_FILE.IS_OPEN (

file IN FILE_TYPE)

RETURN BOOLEAN;

8,文件写入空行

UTL_FILE.NEW_LINE (

file IN FILE_TYPE,

lines IN BINARY_INTEGER := 1)

9,写文件内容

UTL_FILE.PUT_LINE (

file IN FILE_TYPE,

buffer IN VARCHAR2,

autoflush IN BOOLEAN DEFAULT FALSE);

程序举例:

Declare
l_file utl_file.file_type;
Begin
l_file := UTL_FILE.FOPEN('REPORT_DIR','test.txt','W',256);
utl_file.put_line(l_file,'this is put_line test  ');
utl_file.new_line(l_file,1);
Utl_File.fclose(l_file);
End;


相关的文件:

[oracle@dragon chenlong]$ ll
total 16
-rw-r--r-- 1 oracle oinstall   30 Apr 20 22:46 example.txt
-rw-r--r-- 1 oracle oinstall  644 Apr 20 01:17 regular_express.txt
drwxr-xr-x 3 oracle oinstall 4096 Apr 17 18:25 rlwrap-0.42
-rw-r--r-- 1 oracle oinstall   25 Apr 21 01:51 test.txt
[oracle@dragon chenlong]$ cat test.txt
this is put_line test
[oracle@dragon chenlong]$
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: