2013-11-25 15 views
0

我创建调度与下面的语句调度的工作,但dba_scheduler_jobs有一个空的重复间隔

BEGIN 
    SYS.DBMS_SCHEDULER.CREATE_SCHEDULE 
    (
     schedule_name => 'CLEAN_TABLE_EVERYDAY' 
    ,start_date  => trunc(SYSDATE) 
    ,repeat_interval => 'FREQ=DAILY; BYHOUR=23;' 
    ,end_date   => NULL 
    ,comments   => 'Clean table at 11 PM everyday' 
    ); 
END; 
/

但是当我跑下面的查询

SELECT * 
FROM dba_scheduler_jobs 
where owner = 'DB_USER_NAME'; 

我看到repeat_interval列有一个空值。

我已经离开这项工作运行了近3天,我没有看到任何结果。这里有什么问题?

+0

ENABLED专栏说什么? – Ben

+0

它的确说'真'。但repeat_interval仍然为空...我在程序中调用的过程正在运行一个过程。该过程首先将日志行插入本地日志表中。即使离开这个程序运行了2-3天,我也没有看到那条线 –

回答

0

如果用参数schedule_name而不是repeat_interval,这样创建您的工作:

begin 
    DBMS_SCHEDULER.create_job (
    job_name  => 'my_job_name', 
    job_type  => 'PLSQL_BLOCK', 
    job_action => 'begin null; end;', 
    enabled  => TRUE, 
    schedule_name => 'CLEAN_TABLE_EVERYDAY'); 
end; 

然后在dba_scheduler_jobs查看您应该寻找列schedule_name。这是正常的,repeat_interval为空。

为什么你的工作运行2-3天是另一个问题。你必须调试它。尝试先通过SQL +/TOAD/SQLDeveloper运行该过程,然后查看是否有任何错误。

相关问题