0

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

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

4

1 回答 1

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 运行该过程,看看是否有任何错误。

于 2013-11-25T20:01:22.290 回答