ORACLE UTL_FILE文件包的应用,文件I/O操作--转帖
来源:互联网 发布:mac web原型设计工具 编辑:程序博客网 时间:2024/05/20 01:10
利用ORACLE UTL_FILE包可以使文本文件转入进数据表,反之亦然:
1:建立文件目录:
首先在数据库服务器上建立相应的文件目录。
1.1方法:
在初始化文件配置文件init.ora的配置中将
UTL_FILE_DIR = ‘E:/temp’指定路径;
1.2 方法:
创建路径对象:
Create directory test_dir as e:temp
建议用第二种方法;
2:打开和关闭文件:
所有的文件句柄都拥有UTL_FILE.FILE_TYPE。FILE_TYPE在UTL_FILE规范中进行了定义。
2.1:FOPEN(location in varchar2, filename in varchar2, open_mode in varchar2)return FILE_TYPE;
Location 是路径参数,FILENAME 是文件名,OPEN_MODE是打开模式;
有效值:‘R’是读文本,‘W’是写文本,‘A’是附加文本,参数不分大小写,如果指定‘A’但是文件不存在,它会用‘W’先创建出来,‘W’有覆盖的功能;
2.2 : FCLOSE(file_handle in out file_type);
唯一的参数是文件句柄,就是关闭文件;
FCLOSE_ALL关闭所有文件句柄;
2.3: IS_OPEN(file_handle in file_type) return Boolean;
判断文件是否打开;
3:文件输出:
所有的函数如下:
3.1: PUT(file_handle in file_type, buffer in varchar2);
文件输出,但是不会在文件中附加新行字符(newline),必须用put_line或者new_line向文件中输入终结符;
3.2: NEW_LINE(file_handle in file_type, lines in natural := 1);
向文件中写入一个或者多个行终结符;
3.3: PUT_LINE(file_handle in file_type, buffer in varchar2);
等价PUT后接着用NEW_LINE;
3.4: PUTF(file_handle in file_type, format in varchar2,
Arg1 in varchar2 default null,
Arg2 in varchar2 default null,
Arg3 in varchar2 default null,
Arg4 in varchar2 default null,
Arg5 in varchar2 default null)
和PUT类似,但是它允许输出字符串是带格式的,格式字符中n是换行,%s被可选参数取代;
例如:
Declare
v_outputfile utl_file.file_type;
v_name varchar2(20) := ‘scott’;
begin
v_outputfile := utl_file.fopen(..);
utl_file.putf(v_outputfile,
‘hi there! n my name is %s,and I am a %s major.n’,
V_name,
‘Computer science’ );
Fclose(v_outputfile);
end;
输出文件格式:
hi there!
my name is scott ,and I am a Computer science major.
3.5: 输出文件应用实例:
create or replace procedure p_mmr_new
(p_start_time out date,
p_end_time out date)
is
v_file UTL_FILE.FILE_TYPE;
v_string varchar2(100);
v_error exception;
v_i number;
cursor cur_ms_no is
select distinct substr(trim(a.ms_no),1,11)
from msno.t_upload_msno a,
msno.t_msno_black b
where substr(a.ms_no,1,11) = b.ms_no(+)
and b.ms_no is null;
v_count number;
v_ms_no varchar2(20);
begin
p_start_time:=sysdate;
v_count:=0;
-- insert
v_file := UTL_FILE.FOPEN('OUTER_DIR','ivr170.txt', 'w',32767);
open cur_ms_no ;
loop
fetch cur_ms_no into v_ms_no;
exit when cur_ms_no%notfound;
UTL_FILE.PUT_line(v_file, v_ms_no);
v_count:=v_count+1;
if v_count>=5000 then
UTL_FILE.fflush(v_file);
--UTL_FILE.FCLOSE(v_file);
--v_file := UTL_FILE.FOPEN('OUTER_DIR','v_ms_no.txt', 'a',32767);
v_count:=0;
end if;
end loop;
UTL_FILE.FCLOSE(v_file);
close cur_ms_no;
--close
p_end_time:=sysdate;
EXCEPTION
WHEN v_error Then
UTL_FILE.FCLOSE(v_file);
RETURN;
end;
4:文件输入:
4.1 get_line(file_handle in file_type, buffer out varchar2);
从文件中读出数据;
示例:
Declare
V_newline varchar2(200);
begin
v_filehandle := utl_file.fopen(p_filedir, p_filename, ‘r’);
utl_file.get_line(vfilehandle, v_newline);
insert into t1 (tip) values(v_newline);
end;
- ORACLE UTL_FILE文件包的应用,文件I/O操作
- ORACLE UTL_FILE文件包的应用,文件I/O操作
- ORACLE UTL_FILE文件包的应用,文件I/O操作
- ORACLE UTL_FILE文件包的应用,文件I/O操作--转帖
- 利用UTL_FILE包实现文件I/O操作
- Oracle 利用 UTL_FILE 内建包实现文件I/O操作
- oracle自带的操作文件的包UTL_FILE介绍
- oracle UTL_FILE文件操作
- oracle的文件(UTL_FILE)操作
- oracle读写文件--利用utl_file包对磁盘文件的读写操作
- oracle读写文件--利用utl_file包对磁盘文件的读写操作
- oracle中utl_file包读写文件操作学习
- ORALCE——utl_file包进行I/O操作
- oracle利用utl_file包来读写文件
- utl_file包进行OS文件操作
- utl_file包的应用
- utl_file包的应用
- ORACLE的utl_file包
- javascript里如何回车后就点击button按纽
- java串口通信
- C#基础学习 —— 异步编程篇
- C 语言中的字符常数是 int 型
- 关于标签在URI后面传参数的问题
- ORACLE UTL_FILE文件包的应用,文件I/O操作--转帖
- Appserv安装
- 博客搬家了
- dll / class 运行时装载
- 郁闷的问题——URL带参数时就无法获取Cookie
- java串口通讯
- 数据库连接池的工作原理
- 组合快捷键的实现方法
- ACEGI标签及其扩展