我正在创建调度程序作业以通过存储过程进行备份,并且我处于一种情况,用户将选择多个频率,例如
在第一种情况下,用户选择每月作为工作的频率。
在第二种情况下,用户选择每周作为工作的频率(可能是不同的日期组合)。
在第三种情况下,用户选择 Daily 作为 Job 的频率,依此类推。
因此,就目前而言,同一作业有 3 个(根据用户安排可能更多)频率。最好的方法是什么?我必须以多个频率或任何其他更好的方式安排相同的工作。
我认为实现它的最佳和干净的方法是为不同的频率创建 3 个不同的 JOBS,并根据用户的输入启用/禁用它们
如何在 PL/SQL 中启用/禁用作业:
BEGIN
dbms_scheduler.disable('<JOB_NAME>');
END;
/
BEGIN
dbms_scheduler.enable('<JOB_NAME>');
END;
/
干杯!!
您可以创建一个过程并根据用户的输入动态更改以下参数:
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;
/