Oracle 版本:10g 我有一个存储过程,我想知道我的存储过程运行了多少次。是成功还是不成功?
问问题
118 次
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 回答