Oracle定时任务”不自动执行“
记录使用Oracle定时任务时,不自动执行的异常情况。
使用DBMS_JOB.SUBMIT创建定时任务时,能够正常自动执行,但使用DBMS_SCHEDULER.CREATE_JOB时,发现JOB的NEXT_RUN_DATE等于START_DATE,并且设置的REPEAT_INTERVAL貌似也不”生效“,其实这是因为ORACLE本身JOB默认的时区为UTC时区,所以时间是”未来时间“,解决方法就是使用SYSTIMESTAMP AS TIME ZONE '08:00',也可以使用TO_DATE指定初次执行时间
begin
dbms_scheduler.create_job(
job_name => 'XXX_JOBS',
job_type => 'STORED_PROCEDURE',
job_action => 'test',
number_of_arguments => 0, --没有参数
start_date => systimestamp at time zone '08:00',
repeat_interval => 'freq=secondly;interval=5',
enabled => TRUE); --设置TRUE定时任务开启
end;
评论区