我正在尝试调试存储过程(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;
我想打印ID
答案 0 :(得分:21)
使用dbms_output.put_line()
功能:
declare
my_var varchar2(20);
begin
my_var := 'Hello World';
dbms_output.put_line(my_var);
end;
/
如果从SQLPlus运行,请确保您具有set serveroutput on
,或者如果从IDE运行,则设置输出。一些开发人员将创建一个包装器函数来简化调试。
答案 1 :(得分: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
。