0

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

4

2 回答 2

3

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

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

audit execute procedure on my_stored_proc;

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

所以 AUDIT 可能不是您想要的。此外,它不会提供您想要的低级内容(“它成功与否?”)。这使您可以选择将仪器构建到您的程序中。这通常是一个好主意,因为有了良好的跟踪,调试就容易多了。

Oracle 没有为此提供内置库(坦率地说,我觉得这很令人惊讶,但你去吧)。构建自己的记录器非常容易。或者查看 Tyler Muth 的 Logger 项目。 在这里找到它。(不暗示或有意保证)

于 2013-03-08T17:09:23.283 回答
0

在 oracle 数据库中没有办法做到这一点。我也很震惊他们没有提供一个包来为你记录信息到一个表中。他们可以提供一个默认的日志记录包,该包提供以下列

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

使用用于记录的存储过程实现您自己的包。

于 2014-03-24T16:35:13.673 回答