代码之家  ›  专栏  ›  技术社区  ›  Rene

所有“调度程序”作业中的不同时区运行“详细信息”列

  •  1
  • Rene  · 技术社区  · 6 年前

    我目前正在调查一个问题,在作业日志报告中报告了小时时间不匹配。查询特定作业的所有计划程序作业运行详细信息,我得到以下结果:

    select log_date
          ,actual_start_date
      from all_scheduler_job_run_details
     where ...
    
    log_date = 03-JAN-19 02.45.11.116000 PM +01:00
    actual_start_date = 03-JAN-19 03.45.11.116000 PM +02:00
    

    请注意,日志日期是时区+1,实际开始日期是时区+2。

    什么会导致这些时间在作业运行详细日志中以不同的时区存储?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Arkadiusz Łukasiewicz    6 年前

    log_date 始终处于系统时区
    actual_start_date 正在从 start date 如果不存在,则取自调度程序的参数 default_timezone

    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
       job_name             => 'Test',
       job_type             => 'PLSQL_BLOCK',
       job_action           => 'BEGIN null; END;',
       enabled              =>  TRUE, 
       comments             => 'xxx');
    END;
    /
    
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
       job_name             => 'Test',
       job_type             => 'PLSQL_BLOCK',
       job_action           => 'BEGIN null; END;',
       start_date           =>  current_timestamp, -- tz from session
       enabled              =>  TRUE,
       comments             => 'xxx');
    END;
    /
    
    select * from user_SCHEDULER_JOB_RUN_DETAILS