创建如下的工作:
BEGIN
Dbms_Scheduler.create_job(
job_name => 'PROECSS_STATE'
,job_type => 'STORED_PROCEDURE'
,job_action => 'ARCHIVE_AND_DELETE' -- Procedure Name
,start_date => SYSDATE
,repeat_interval => 'freq=DAILY; byhour=13' --Added byhour
,enabled => TRUE
,comments => 'job schedule for archiving process_state');
END;
当我创作这份工作时,时间是“21-mrt-2014 12:55:55”
但是检查后没有发生任何事情(检查时间为13:05:45)。
程序没有按预期运行。
任何人都可以告诉我为什么工作没有被执行?
答案 0 :(得分:0)
将start_date => SYSDATE
替换为start_date => SYSTIMESTAMP
。
这只是一些问题的问题。例如,下面的代码在Windows上的Oracle 12c上运行2个作业,但只在Solaris上运行11gR2上的第一个作业。
begin
dbms_scheduler.create_job('TEST_JOB1', 'PLSQL_BLOCK', 'begin null; end;'
,start_date => systimestamp, enabled => true);
dbms_scheduler.create_job('TEST_JOB2', 'PLSQL_BLOCK', 'begin null; end;'
,start_date => sysdate , enabled => true);
end;
/
--Only one job ran (on some platforms).
select * from dba_scheduler_job_run_details where job_name like 'TEST%';
我不知道为什么会这样。如果有人能解释的话,我将不胜感激。