Oracle PL SQL過程除錯的輸出方法

2021-08-31 12:25:26 字數 1699 閱讀 8386

1.最基本的dbms_output.put_line()方法。

隨便在什麼地方,只要是begin和end之間,就可以使用dbms_output.put_line(output);然而這會有乙個問題,就是使用該函式一次最多隻可以顯示255個字元,否則緩衝區會溢位。

此外,函式dbms_output.enable(20000)這種函式,僅僅是設定整個過程的全部輸出緩衝區大小,而非dbms_output.put_line()的緩衝區大小。

對於超過255個字元的變數,使用dbms_output.put_line()方法是沒有效的。據說在oracle10中,解除了這個限制,可以輸出任意大小的字串。

declare
output varchar2(200);
begin
output:='...'; //賦值
dbms_output.put_line(output);
end;
2.使用表的方法。

首先建立一張表,然後在pl/sql中將要輸出的內容插到表中。然後再從表中檢視內容。對於這種方法一次可以輸出幾千個字元。

(1) create table my_output{

id number(4),

txt varchar2(4000) 

);

(2) declare

output varchar2(4000);

strsql varchar2(4500);

count number(4):=0;

begin

strsql:='delete * from my_output';

execute immediate strsql;

output:='...'; //賦值

count:=count+1;

strsql:='insert into my_output value (count,'''||output||''')';

--''在單引號中相當於字元'

execute immediate strsql;

end;

3.使用輸出檔案的方法。

如果變數非常大,以致連使用表都沒有辦法插入時,只有使用檔案方式了。

(1) create or replace directory tmp as 'd:\testtmp';
--建立乙個資料夾路徑
(2) declare
file_handle utl_file.file_type;
output varchar2(30000);
begin
output:="....";
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
end;

Oracle PL SQL 過程除錯的輸出方法

1.最基本的dbms output.put line 方法。隨便在什麼地方,只要是begin和end之間,就可以使用dbms output.put line output 然而這會有乙個問題,就是使用該函式一次最多隻可以顯示255個字元,否則緩衝區會溢位。此外,函式dbms output.enabl...

OraclePL SQL儲存過程

create or replace 建立或替換,如果存在就替換,不存在就建立create or replace procedure piscursor cisselect from dept2 for update beginfor row record in c loopif row record...

Oracle PL SQL 儲存過程

1.oracle 提供可以吧pl sql程式儲存在資料庫中,並且可以在任何地方來運用它。這樣就叫儲存過程或者函式。2.建立函式 例 返回helloworld的函式,is相當於declare用於宣告區域性變數,第乙個return只宣告返回型別 create or replace function he...