在oracle

时间:2015-09-09 16:29:15

标签: oracle plsql exception-handling toad error-logging

我在Toad为oracle创建了一个名为error_log的表。这样做的目的是记录以前编写的包可能遇到的任何错误,并记录它们供开发人员查看。现在,我的任务是创建一个包/过程,它本质上会导致错误,并能够将其记录到error_log表中?关于我将如何处理的任何想法?

2 个答案:

答案 0 :(得分:3)

首先,使包过程成为一个自治事务,这样即使调用事务回滚,写入日志的任何内容都会保持写入状态。

其次,让你的日志程序的调用者尽可能少地传递信息:理想情况下,只是一条消息。在日志过程中,您可以执行以下操作:

  • 决定是否“开启”日志记录并写入日志
  • 决定哪个包和行号称为日志过程(因此您可以编写消息来源)
  • 决定邮件的时间戳应为
  • 决定用户是谁,他的IP地址是什么,等等,如果你想记录这些东西

第三,这只是我的观点,没有“消息级别”的概念。我基本上有两种类型的消息 - 错误和非错误。总是写错误;可以打开或关闭非错误。当您尝试使用“Fine”,“Finer”和“Finest”等日志记录级别时,无论何时出现问题,您都会将其打开为“最佳”。

答案 1 :(得分:-1)

您需要使用RAISE_APPLICATION_ERROR过程,该过程允许您引发已定义的错误。

Handling PL/SQL Errors