调度作业但dba_scheduler_jobs具有空重复间隔

时间:2013-11-25 17:27:37

标签: oracle plsql oracle11g dbms-scheduler

我正在使用以下语句创建调度程序

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天,我没有看到任何结果。这有什么不对?

1 个答案:

答案 0 :(得分: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_namerepeat_interval为空是正常的。

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