问题现象:oracle
报警文件中一直在报下面的错误:app
Thu Jul 26 23:04:42 2012ast
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_31365.trc:date
ORA-12012: 自动执行做业 23 出错file
ORA-12005: 不能安排过去时间的自动刷新select
Thu Jul 26 23:06:42 2012next
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_31383.trc:db
ORA-12012: 自动执行做业 23 出错di
ORA-12005: 不能安排过去时间的自动刷新文件
Thu Jul 26 23:10:43 2012
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_31417.trc:
ORA-12012: 自动执行做业 23 出错
ORA-12005: 不能安排过去时间的自动刷新
Thu Jul 26 23:18:43 2012
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_31478.trc:
ORA-12012: 自动执行做业 23 出错
ORA-12005: 不能安排过去时间的自动刷新
Thu Jul 26 23:34:44 2012
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_31614.trc:
ORA-12012: 自动执行做业 23 出错
ORA-12005: 不能安排过去时间的自动刷新
问题解决:
该问题应该是job执行后,计算job的下一个执行时间时,发现比当前的时间还早,就报这个错误:
检查23号job
select job,last_date,next_date,interval from dba_jobs;
23 2012-7-28 0:06:47 00:06:47 2012-7-28 23:04:37 23:04:37 (trunc(sysdate)+25/26)
主要为这个间隔时间为 (trunc(sysdate)+25/26)
select (trunc(sysdate)+25/26) from dual;
这个时间为当天的 23:04:37 ,因此没法执行
修改成'trunc(sysdate)+25/24'便可.
具体修改过程为:
Execute DBMS_JOB.INTERVAL (23, 'trunc(sysdate)+25/24');