甲骨文 DBMS_SCHEDULER_LOGGING_OFF

Oracle DBMS_SCHEDULER_LOGGING_OFF

我定义了一个 DBMS_SCHEDULER 作业,日志记录定义为 DBMS_SCHEDULER_LOGGING_OFF,如图所示:

然而,当我查询数据库时

SELECT * from USER_SCHEDULER_JOB_RUN_DETAILS  ORDER BY LOG_DATE DESC

我得到了所有工作详情

这份工作属于什么工作class?虽然你可能已经用 DBMS_SCHEDULER_LOGGING_OFF 定义了作业,但如果作业所属的作业 class 的 logging_level 更高,那么 Oracle 将优先于作业 class logging_level 高于个人职位的 logging_level

要解决此问题,您可以:1. 使用所需 logging_level 创建新作业 class,然后使用该作业 class 重新创建作业,或者 2 . 使用 DBMS_SCHEDULER.set_attribute 更改现有作业 class 的 logging_level。我建议创建一个新工作 class,因为更改现有工作 class 可能会导致不良结果。

要通过注销创建新作业 class,您的代码应如下所示:

BEGIN
DBMS_SCHEDULER.CREATE_JOB_CLASS (
   job_class_name => 'mytestjobclass',
   logging_level => DBMS_SCHEDULER.LOGGING_OFF);
END;

如果该作业已经属于它自己的作业 class 而您只想更改日志记录级别,您的代码将如下所示:

BEGIN
  DBMS_SCHEDULER.SET_ATTRIBUTE (
   name => 'mytestjobclass', 
   attribute => 'logging_level', 
   value => DBMS_SCHEDULER.LOGGING_OFF);
END;

您可以在此处找到有关工作 classes 和 logging_level 的更多信息:29.8.2.3 Precedence of Logging Levels in Jobs and Job Classes