我目前正在调查一个问题,其中在作业日志报告中报告了一个小时时间不匹配。查询all_scheduler_job_run_details以查找特定作业,我得到以下结果:
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
请注意,log_date的时区为+ 1,actual_start_date的时区为+ 2。
是什么原因导致这些时间以不同的时区存储在job_run_detail日志中?
答案 0 :(得分:2)
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