加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

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

发布时间:2021-01-15 02:25:10 所属栏目:站长百科 来源:网络整理
导读:其实我从应用服务器上的 java文件调用oracle程序.我想调试我的oracle过程,所以我在oracle过程中将语句写为“dbms_output”,但是不知道oracle服务器上的日志存储在哪里,实际上我想在oracle过程中打印一些变量值来跟踪我的问题. 如果你知道从java文件调试oracl

其实我从应用服务器上的 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表中.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读