【问题标题】:dba_scheduler_job_run_details and dbms_outputdba_scheduler_job_run_details 和 dbms_output
【发布时间】:2021-10-01 19:15:35
【问题描述】:
dba_scheduler_job_run_details 能够在 dba_scheduler_job_run_details.output 列中保留 dbms_output.put_line 行。当工作正常流动和退出时,情况就是如此。但是,当我明确调用 dbms_scheduler.stop_job 时 - 所有输出都丢失了。
如何避免这种行为?
【问题讨论】:
标签:
oracle
logging
jobs
dbms-scheduler
dbms-output
【解决方案1】:
我认为您无法避免这种情况,就像您终止正在运行过程的 SQL*PLus 会话一样,您也不会看到输出,因为 DBMS_OUTPUT 只是将数据放入数组中,然后然后调用环境负责检索该信息并将其放在某处(例如输出到终端)。你杀死/停止调用环境..并且没有什么可以去获取那个输出了。
更好的选择是不将 DBMS_OUTPUT 单独用作调试/检测机制。在捕获调试信息方面存在更好的选择,包括实时从备用会话中查看它等。
在https://github.com/OraOpenSource/Logger 上查看 Logger。 Oracle 社区中的许多人都在使用它。