最基本的DBMS_OUTPUTPUT_LINE()方法
随便在什么地方只要是BEGIN和END之间就可以使用DBMS_OUTPUTPUT_LINE(output);然而这会有一个问题就是使用该函数一次最多只可以显示个字符否则缓沖区会溢出
此外函数DBMS_OUTPUTENABLE()这种函数仅仅是设置整个过程的全部输出缓沖区大小而非DBMS_OUTPUTPUT_LINE()的缓沖区大小
对于超过个字符的变量使用DBMS_OUTPUTPUT_LINE()方法是没有效的据说在Oracle中解除了这个限制可以输出任意大小的字符串
declare
output varchar();
begin
output:=; //赋值
DBMS_OUTPUTPUT_LINE(output);
end;
使用表的方法
首先建立一张表然后在PL/SQL中将要输出的内容插到表中然后再从表中查看内容对于这种方法一次可以输出几千个字符
() create table my_output{
id number()
txt varchar()
);
() declare
output varchar();
strSql varchar();
count number():=;
begin
strSql:=delete * from my_output;
EXECUTE IMMEDIATE strSql;
output:=; //赋值
count:=count+;
strSql:=Insert into my_output value (count||output||);
在单引号中相当于字符
EXECUTE IMMEDIATE strSql;
end;
使用输出文件的方法
如果变量非常大以致连使用表都没有办法插入时只有使用文件方式了
() create or replace directory TMP as d:\testtmp;
建立一个文件夹路径
() declare
file_handle UTL_FILEFILE_TYPE;
output varchar();
begin
output:=;
file_handle := UTL_FILEFOPEN(TMP outputtxt w[]);
四个参数目录文件名打开方式最大行数(默认为)
UTL_FILEPUT_LINE(file_handle output);
UTL_FILEFCLOSE(file_handle);
exception
WHEN utl_fileinvalid_path THEN
raise_application_error( ERROR: Invalid path for file or path not in INITORA);
end;