2012-03-01 19 views
7

我想調試一個存儲過程(Oracle)。我想打印一些變量。如何在oracle存儲過程中打印(用於調試目的)?

我不知道打印命令是什麼(或在哪裏可以找到它)。誰能告訴我它是什麼?

感謝

編輯:

這是我的觸發器:

create or replace 
procedure bns_saa_confs_update_state (
    theID in varchar2 
) 
AS 
begin 
    UPDATE BNS_SAA_CONFIRMATIONS SET SentToWssStatus='T' WHERE ID=theID; 
    commit; 
end; 

我想打印theID

回答

16

使用dbms_output.put_line()功能:

declare 
    my_var varchar2(20); 
begin 
    my_var := 'Hello World'; 
    dbms_output.put_line(my_var); 
end; 
/

請確保您有set serveroutput on如果從運行的SQLPlus,或者如果從IDE運行設置輸出。一些開發人員將創建一個包裝函數來簡化調試。

4

你可能想的DBMS_OUTPUT包,即

DECLARE 
    a INTEGER := 0; 
BEGIN 
    dbms_output.put_line('Starting value: ' || a); 
    a := a + 1; 
    dbms_output.put_line('Ending value: ' || a); 
END; 

請注意,您通常需要啓用DBMS_OUTPUT在您的客戶端應用程序將顯示數據之前。在SQL * Plus中,您需要執行存儲過程之前需要

set serveroutput on; 

以便數據在執行後顯示。其他GUI工具有不同的方法來啓用DBMS_OUTPUT

相關問題