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

2021-08-29 15:03:07 字數 1624 閱讀 1975

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...