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