2
我想创建一个每年在2am on the first Sunday in October
上运行的作业,我试着用下面的代码。但得到的错误一样,创建计划程序作业在一年内运行一次
Error report:
ORA-27419: unable to determine valid execution date from repeat interval
ORA-06512: at "SYS.DBMS_ISCHED", line 124
ORA-06512: at "SYS.DBMS_SCHEDULER", line 271
ORA-06512: at line 2
下面的代码为创造就业提前
BEGIN
DBMS_SCHEDULER.CREATE_JOB(job_name => 'To_DST_Australia',
job_type => 'PLSQL_BLOCK',
JOB_ACTION => 'BEGIN
NULL;
END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=YEARLY; BYMONTH=OCT; BYDAY=1SUN; BYHOUR=2; BYMINUTE=00; BYSECOND=00',
end_date => NULL,
enabled => TRUE,
comments => '1st Sunday in October');
END;
/
感谢。
更改'FREQ = MONTHLY'代替'YEARLY'执行精细。仍然不确定在“年”情况下失败的原因。如果我们使用'YEARLY'指定'BYDAY = SUN',那么运行良好。 – learningloop
关于BYDAY的Oracle文档:*“使用数字,如果使用月份频率或月份的第四个THU,则可以使用MONTHLY频率指定一年中的第26个星期五。”* http://docs.oracle。 com/cd/E16655_01/appdev.121/e17602/d_sched.htm#ARPLS72263 –
年的第一个周日不会在十月发生,所以YEARLY表达式与任何日期都不匹配(因为您规定它应该尝试找到一年中的第一个星期天,但它必须在十月)。 –