2012-03-01 54 views
7

Tôi đang cố gỡ lỗi một thủ tục lưu sẵn (Oracle). Tôi muốn in một số biến.làm thế nào để printf trong thủ tục lưu trữ oracle (cho mục đích gỡ lỗi)?

Tôi không biết lệnh in là gì (hoặc nơi để tìm). Ai đó có thể nói cho tôi biết nó là gì không?

Cảm ơn

EDIT:

Đây là kích hoạt của tôi:

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; 

Tôi muốn in theID

Trả lời

16

Sử dụng dbms_output.put_line() chức năng:

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

Đảm bảo bạn có set serveroutput on nếu chạy từ SQLPlus hoặc đặt đầu ra nếu chạy từ IDE. Một số nhà phát triển sẽ tạo ra một hàm bao bọc để đơn giản hóa việc gỡ lỗi.

4

Có thể bạn muốn DBMS_OUTPUT gói, ví dụ:

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

Lưu ý rằng bạn thường cần phải kích hoạt DBMS_OUTPUT trong ứng dụng của khách hàng của bạn trước khi dữ liệu sẽ được hiển thị. Trong SQL * Plus, bạn cần phải

set serveroutput on; 

trước khi thực hiện quy trình được lưu trữ để dữ liệu được hiển thị sau khi thực thi. Các công cụ GUI khác có các cách tiếp cận khác nhau để kích hoạt DBMS_OUTPUT.

Các vấn đề liên quan