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;