1、创建读、写目录并授权
SQL> CREATE DIRECTORY READ_DIR AS 'F:\READ_DIR';
Directory created
SQL> CREATE DIRECTORY WRITE_DIR AS 'F:\WRITE_DIR';
Directory created
SQL> GRANT READ ON DIRECTORY READ_DIR TO PUBLIC;
Grant succeeded
SQL> GRANT WRITE ON DIRECTORY WRITE_DIR TO PUBLIC;
Grant succeeded
2、utl_file.fcopy 复制
utl_file.fcopy(
src_location, --源位置
src_filename, --源文件名
dest_location, --目的地位置
dest_filename, --目的地文件名
[start_line], --起始行 默认1
[end_line] --结束行
)
实例:
BEGIN
utl_file.fcopy('READ_DIR','1.txt','WRITE_DIR','b.txt',2,3);
END;
2、utl_file.fopen 打开文件,返回一个文件句柄
utl_file.fopen(
LOCATION,
filename,
open_mode,
[max_linesize]
)
RETURN <file_type_package_data_type;
open_mode:
A:Append Text
R:Read Text
W:Write Text
3、utl_file.get_line 从指定文件读取一行数据
utl_file.get_line(
FILE, --utl_file.file_type
BUFFER, --varchar2
[LEN]
)
4、utl_file.fclose 关闭指定文件
utl_file.fclose(
FILE --utl_file.file_type
)
实例:
DECLARE
Readfile utl_file.file_type;
strLine VARCHAR2(1000);
BEGIN
Readfile:=utl_file.fopen('READ_DIR','1.txt','R');
LOOP
BEGIN
utl_file.get_line(readfile,strline);
dbms_output.put_line(strline);
EXCEPTION
WHEN OTHERS THEN
EXIT;
END;
END LOOP;
END;
5、utl_file.put_line 向指定文件写入一行数据
utl_file.put_line(
FILE , --file_type
BUFFER, --varchar2
autoflush --boolean
)
6、utl_file.put 向指定文件写入一个字符串
utl_file.put(
FILE --utl_file.file_type,
BUFFER --varchar2
)
实例:
DECLARE
Readfile utl_file.file_type;
strLine VARCHAR2(1000);
BEGIN
Readfile:=utl_file.fopen('READ_DIR','2.txt','A');
/*LOOP
BEGIN
utl_file.get_line(readfile,strline);
dbms_output.put_line(strline);
EXCEPTION
WHEN OTHERS THEN
EXIT;
END;
END LOOP;*/
utl_file.put_Line(readfile,'aaa');
utl_file.put(readfile,'bbb');
utl_file.put(readfile,'ccc');
utl_file.put(readfile,'ddd');
utl_file.fclose(readfile);
END;
SQL> CREATE DIRECTORY READ_DIR AS 'F:\READ_DIR';
Directory created
SQL> CREATE DIRECTORY WRITE_DIR AS 'F:\WRITE_DIR';
Directory created
SQL> GRANT READ ON DIRECTORY READ_DIR TO PUBLIC;
Grant succeeded
SQL> GRANT WRITE ON DIRECTORY WRITE_DIR TO PUBLIC;
Grant succeeded
2、utl_file.fcopy 复制
utl_file.fcopy(
src_location, --源位置
src_filename, --源文件名
dest_location, --目的地位置
dest_filename, --目的地文件名
[start_line], --起始行 默认1
[end_line] --结束行
)
实例:
BEGIN
utl_file.fcopy('READ_DIR','1.txt','WRITE_DIR','b.txt',2,3);
END;
2、utl_file.fopen 打开文件,返回一个文件句柄
utl_file.fopen(
LOCATION,
filename,
open_mode,
[max_linesize]
)
RETURN <file_type_package_data_type;
open_mode:
A:Append Text
R:Read Text
W:Write Text
3、utl_file.get_line 从指定文件读取一行数据
utl_file.get_line(
FILE, --utl_file.file_type
BUFFER, --varchar2
[LEN]
)
4、utl_file.fclose 关闭指定文件
utl_file.fclose(
FILE --utl_file.file_type
)
实例:
DECLARE
Readfile utl_file.file_type;
strLine VARCHAR2(1000);
BEGIN
Readfile:=utl_file.fopen('READ_DIR','1.txt','R');
LOOP
BEGIN
utl_file.get_line(readfile,strline);
dbms_output.put_line(strline);
EXCEPTION
WHEN OTHERS THEN
EXIT;
END;
END LOOP;
END;
5、utl_file.put_line 向指定文件写入一行数据
utl_file.put_line(
FILE , --file_type
BUFFER, --varchar2
autoflush --boolean
)
6、utl_file.put 向指定文件写入一个字符串
utl_file.put(
FILE --utl_file.file_type,
BUFFER --varchar2
)
实例:
DECLARE
Readfile utl_file.file_type;
strLine VARCHAR2(1000);
BEGIN
Readfile:=utl_file.fopen('READ_DIR','2.txt','A');
/*LOOP
BEGIN
utl_file.get_line(readfile,strline);
dbms_output.put_line(strline);
EXCEPTION
WHEN OTHERS THEN
EXIT;
END;
END LOOP;*/
utl_file.put_Line(readfile,'aaa');
utl_file.put(readfile,'bbb');
utl_file.put(readfile,'ccc');
utl_file.put(readfile,'ddd');
utl_file.fclose(readfile);
END;