微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

oracle11g – 如何查看oracle过程的日志(dbms_output语句)

其实我从应用服务器上的 java文件调用oracle程序.我想调试我的oracle过程,所以我在oracle过程中将语句写为“dbms_output”,但是不知道oracle服务器上的日志存储在哪里,实际上我想在oracle过程中打印一些变量值来跟踪我的问题.

如果你知道从java文件调试oracle过程调用的任何其他调试机制,请分享解释.

我花了几个小时在Google上寻找一些东西.但是,我似乎无法找到任何牵手,你的帮助非常感谢.试着更清楚,我在这个问题上缺乏想法,即使它听起来像一个经典.

解决方法

当你调用dbms_output(put_line方法,我假设)时,输出被泵送到stderr,而不是任何日志文件.

我建议您使用像Log4PLSQL这样的工具或创建一个日志表,并拥有一个自动事务,将所有错误记录到此表中.

您的基本错误记录过程将如下所示:

PROCEDURE log_errors(p_error_details varchar2) is

PRAGMA AUTONOMOUS_TRANSACTION;

BEGIN
  INSERT INTO ERROR_LOG(SR_NO,ERR_MSG,ERR_DATE) 
                  VALUES(ERR_LOG_SEQ.NEXTVAL,p_error_details,sysdate);

  COMMIT;
END log_errors;

支持错误记录过程的脚本:

CREATE TABLE ERROR_LOG(SR_NO NUMBER,ERR_MSG VARCHAR2(2000),ERR_DATE DATE);

CREATE SEQUENCE ERR_LOG_SEQ MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 20;

现在,只需添加一个异常处理程序&在PL / sql过程中调用此过程可以解决问题.

BEGIN
   ....
EXCEPTION
  ... 
  WHEN OTHERS THEN
     log_errors(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);

所有异常都将被处理并存储在ERROR_LOG表中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐