存储过程日志详细信息

时间:2013-03-08 11:24:36

标签: oracle stored-procedures oracle10g

Oracle版:10g 我有一个存储过程,我想知道我的存储过程运行了多少次。它成功与否?

2 个答案:

答案 0 :(得分:3)

Oracle默认不存储此信息。

您可以使用AUDIT语句通过审核EXECUTE PROCEDURE来启用程序调用的审核:

audit execute procedure on my_stored_proc;

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

所以AUDIT可能不是你想要的。此外,它不会给你想要的低级别的东西(“它成功与否?”)。这使您可以选择在您的程序中构建检测。这通常是一个好主意,因为通过合适的跟踪调试会更容易。

Oracle没有为此提供内置库(我发现坦率地令人惊讶,但你去了)。构建自己的记录器非常简单。另外,请查看Tyler Muth的Logger项目。 Find it here。 (不暗示或暗示保证)

答案 1 :(得分:0)

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

  • UserID
  • 日志级别
  • 时间戳
  • 命令

使用存储过程实现您自己的包以进行日志记录。