最基本的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;
From:http://tw.wingwit.com/Article/program/Oracle/201311/17423.html