(1) create table my_output{
id number(4),
txt varchar2(4000)
);
(2) declareoutput varchar2(4000);
strSql varchar2(4500);
count number(4):=0;
beginstrSql:='delete * from my_output';
EXECUTE IMMEDIATE strSql;output:='...'; //赋值
count:=count+1;strSql:='Insert into my_output value (count,'''||output||''')';
--''在单引号中相当于字符'
EXECUTE IMMEDIATE strSql;
end;
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
3.使用输出文件的方法。
如果变量非常大,以致连使用表都没有办法插入时,只有使用文件方式了。
(1) create or replace directory TMP as 'd:\testtmp';--建立一个文件夹路径(2) declarefile_handle UTL_FILE.FILE_TYPE;output varchar2(30000);
beginoutput:="....";
file_handle := UTL_FILE.FOPEN('TMP', 'output.txt', 'w',[1-32767]);
--四个参数:目录,文件名,打开方式,最大行数(默认为2000)
UTL_FILE.PUT_LINE(file_handle, output);
UTL_FILE.FCLOSE(file_handle);
exception
WHEN utl_file.invalid_path THEN
raise_application_error(-20000, 'ERROR: Invalid path for file or path not in INIT.ORA.');
end;