作业调度在oracle中不起作用

时间:2014-03-21 12:09:04

标签: sql oracle stored-procedures jobs job-scheduling

创建如下的工作:

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)。

程序没有按预期运行。

任何人都可以告诉我为什么工作没有被执行?

1 个答案:

答案 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%';

我不知道为什么会这样。如果有人能解释的话,我将不胜感激。