2013-03-08 141 views
0

Oracle版本:10g 我有一个存储过程,我想知道存储过程运行了多少次。它是否成功?存储过程日志详细信息

+0

我不相信有任何内置的东西可以做到这一点。 SP做什么?它能否在表格运行后改变日期?或者,如果它是维护SP,则可能需要考虑将其设置为工作,因为我怀疑这会记录一些历史记录。 – 2013-03-08 11:29:45

回答

3

默认情况下,Oracle不存储此信息。

您可以使用AUDIT语句使程序调用的审计,通过审计EXECUTE PROCEDURE:

audit execute procedure on my_stored_proc; 

(其中my_stored_proc可以是包或其他)。您需要拥有相应的系统权限才能审核事物,即使它们是您的事情。这是因为审计是一种开销,并且严格控制对审计线索本身的访问(出于可理解的原因)。

因此,审计可能不是你要找的。此外,它不会给你想要的低级别的东西(“成功与否?”)。这使您可以选择在仪器中建立仪器。这通常是一个好主意,因为使用体面跟踪进行调试要容易得多。

Oracle没有为此提供内置的库(我发现这很令人惊讶,但是你去了)。建立自己的记录器非常简单。或者退出Tyler Muth的Logger项目。 Find it here。 (不保证或暗示)

0

无法在oracle数据库中执行此操作。我也很震惊,他们没有提供将信息记录到桌面的软件包。他们可以提供以下提供的列

  • 用户名
  • 日志级别
  • 时间戳
  • 命令

与日志存储过程实现自己的包一个默认的日志记录包。