如何在oracle存储过程中打印f(用于调试目的)



我正在尝试调试一个存储过程(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

使用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运行,请将输出设置为打开。一些开发人员会创建一个包装器函数来简化调试。

您可能想要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

最新更新