oracle存储过程将数据写入txt文档事例。

 1 --第一步:创建表T_TXT_TABLE
 2 create table T_TXT_TABLE
 3 (
 4   ID       INTEGER,
 5   TXT_NR NVARCHAR2(50)
 6 );
 7 
 8 --第二步:向表中插入测试数据
 9 insert into t_txt_table (ID, TXT_NR) values (1, '本文测试1');
10 insert into t_txt_table (ID, TXT_NR) values (2, '本文测试2');
11 
12 --第三步:创建txt文档生成的位置。sql语句创建的为oracle存储位置,需手动到具体的目录下创建目录。
13 create or replace directory txt_dir as 'd:/txt_dir';
14 
15 --第四步:编写存储过程。
16 create or replace procedure USP_TXT_OUTPUT is
17   txt_handle UTL_FILE.file_type;
18   type type_table is table of t_txt_table%rowtype;
19   v_table type_table;
20   v_filenr clob;
21 BEGIN
22    select * bulk collect into v_table from t_txt_table t;
23   for i in 1 .. v_table.count loop
24       v_filenr := v_filenr || v_table(i).TXT_NR;
25   end loop;
26  /**此处的目录位置必须为大写,否则会报找不到目录的错误,32767为能接受的最大数据**/
27   txt_handle := UTL_FILE.FOPEN('TXT_DIR', '测试文本.txt', 'w',32767);
28   UTL_FILE.PUT_LINE(txt_handle, v_filenr);
29   UTL_FILE.FCLOSE(txt_handle);
30 end;

 

posted on 2013-08-12 10:33  小蚂工  阅读(319)  评论(0)    收藏  举报

导航