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表達式與任何日期都不匹配(因爲您規定它應該嘗試找到一年中的第一個星期天,但它必須在十月)。 –