当此代码在 SQL Developer 中针对 Oracle 11g 执行时,我得到一个错误,
begin
dbms_scheduler.create_job(
job_name => 'comuni_34',
job_type => 'plsql_block',
job_action => 'begin com_auth_api.expire_old_passwords; end;',
start_date => to_date('2009-jan-01 01:15:00', 'yyyy-mon-dd hh24:mi:ss'),
repeat_interval => 'freq=daily',
enabled => true,
comments => 'Expire old passwords'
);
end;
这是错误,
Error starting at line 4 in command:
begin
dbms_scheduler.create_job(
job_name => 'comuni_34',
job_type => 'plsql_block',
job_action => 'begin com_auth_api.expire_old_passwords; end;',
start_date => to_date('2009-jan-01 01:15:00', 'yyyy-mon-dd hh24:mi:ss'),
repeat_interval => 'freq=daily',
enabled => true,
comments => 'Expire old passwords'
);
end;
Error report:
ORA-01870: the intervals or datetimes are not mutually comparable
ORA-06512: at "SYS.DBMS_ISCHED", line 99
ORA-06512: at "SYS.DBMS_SCHEDULER", line 268
ORA-06512: at line 2
01870. 00000 - "the intervals or datetimes are not mutually comparable"
*Cause: The intervals or datetimes are not mutually comparable.
*Action: Specify a pair of intervals or datetimes that are mutually
comparable.
谷歌搜索没有帮助,因为它只是列出了大量无用的 Oracle 错误代码站点。
也许 SYS.DBMS_ISCHED/SYS.DBMS_SCHEDULER 的来源可以解释这一点。
更新:使用 '2010-apr-20 01:15:00' 而不是 '2009-jan-01 01:15:00' 的另一份工作刚刚奏效,也许问题是过去太远的日期不是正确处理。
更新:使用 '2009-apr-01 01:15:00' 而不是 '2009-jan-01 01:15:00' 才有效。然而,'2009-mar-01 01:15:00' 没有工作,所以有一个限制,一个工作可以开始多远。由于我已经解决了我的问题,我不能接受重复我的解决方案的答案,但如果有人想进一步解释这一点,我会考虑接受。