0

我正在创建调度程序作业以通过存储过程进行备份,并且我处于一种情况,用户将选择多个频率,例如

在第一种情况下,用户选择每月作为工作的频率。

在第二种情况下,用户选择每周作为工作的频率(可能是不同的日期组合)。

在第三种情况下,用户选择 Daily 作为 Job 的频率,依此类推。

因此,就目前而言,同一作业有 3 个(根据用户安排可能更多)频率。最好的方法是什么?我必须以多个频率或任何其他更好的方式安排相同的工作。

4

2 回答 2

1

我认为实现它的最佳和干净的方法是为不同的频率创建 3 个不同的 JOBS,并根据用户的输入启用/禁用它们

如何在 PL/SQL 中启用/禁用作业:

BEGIN
dbms_scheduler.disable('<JOB_NAME>');
END;
/

BEGIN
dbms_scheduler.enable('<JOB_NAME>');
END;
/

干杯!!

于 2020-03-12T06:42:31.873 回答
0

您可以创建一个过程并根据用户的输入动态更改以下参数:

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
   job_name           =>  'job_name',
   job_type           =>  'STORED_PROCEDURE',
   job_action         =>  'PROCEDURE_NAME',
   start_date         =>  'START_DATE',
   repeat_interval    =>  'FREQ=DAILY;INTERVAL=1', /* every other day */
   end_date           =>  'END_DATE',
   auto_drop          =>   FALSE,
   comments           =>  'My new job');
END;
/
于 2020-03-12T06:19:34.310 回答