0

我有一个在远程客户端上运行的 Oracle XXg 数据库,并且无法重现测试环境。现在,有一个存储过程返回一个意外的值(它只是一个应该为零但返回其他数字的整数),我想知道是哪个值。

我可以编辑函数和过程,但如果不使用无法调试的大型 Java 应用程序,我将无法调用该函数。有没有办法将返回值记录到文本文件或数据库上的一些日志中,以便我可以在执行后检查它?

如果没有这样的功能,那么麻烦的解决方法是什么?

4

1 回答 1

1

如何创建一个表来记录值?

CREATE TABLE mylog (t TIMESTAMP DEFAULT SYSTIMESTAMP, retval NUMBER);

CREATE OR REPLACE PROCEDURE yourprocedure 
AS
  myval NUMBER;

  PROCEDURE logval (myval NUMBER) AS PRAGMA autonomous_transaction;
  BEGIN
    INSERT INTO mylog(retval) VALUES (myval);
    COMMIT;
  END logval;
BEGIN
  -- your normal code
  myval := 1; 
  -- log the result
  logval(myval);
END yourprocedure;
/

然后您可以简单地从表中选择值mylog...

于 2013-01-10T17:37:11.770 回答