我正在尝试启用Oracle计划作业的日志记录,这样当我查看作业的运行详细信息时,我就能看出作业的过程是什么以及它做了什么。目前,编写该过程是为了通过dbms_output.put_line()
注销,因为只需启用set serveroutput on
即可查看程序和SQL * Plus。但是,我无法弄清楚如何在作业运行详细信息中显示此日志记录信息。具体来说,我在看:
select additional_info from dba_scheduler_job_run_details;
此外,这些数据似乎显示在作业实例下的企业管理器中的运行详细信息中。
那么,是否有方法,设置或不同的包,可以为Oracle Scheduled Job进行简单的日志记录?
答案 0 :(得分:3)
您可以在通话结束时添加一些内容。它可以调用dbms_output.get_lines,将数据加载到CLOB中并存储在某处供您阅读。你可能也想在开始时调用DBMS_OUTPUT.ENABLE。
就个人而言,我避免使用DBMS_OUTPUT.PUT_LINE并拥有自己的日志记录例程,无论是平面文件还是表格(使用自治事务)。
答案 1 :(得分:1)
自主交易是要走的路!
您可以使用要记录的信息定义日志表,并编写插入&的过程。作为自治事务提交到此表。这样,即使作业仍在运行,您也可以看到正在发生的事情。
AFAIK在作业仍在运行时没有其他方法可以获取信息,DBMS_OUTPUT只会在作业完成后显示。