📜  oracle repeat_interval 5 分钟 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:19.008000             🧑  作者: Mango

Oracle中的Repeat_Interval

当使用Oracle编写定时任务时,我们需要指定任务的执行周期。Oracle提供了Repeat_Interval选项,以便我们可以非常方便地配置任务的执行时间。

Repeat_Interval的使用

Repeat_Interval选项可以在创建定时任务时使用,也可以在修改现有任务时使用。如果您要创建一个新任务,则可以使用以下语法:

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
      job_name           =>  'job_name',
      job_type           =>  'PLSQL_BLOCK',
      job_action         =>  'block_of_code',
      repeat_interval    =>  'FREQ=MINUTELY;INTERVAL=5',
      enabled            =>  TRUE);
END;
/

上面的语法中,repeat_interval选项被设置为FREQ=MINUTELY;INTERVAL=5。这意味着任务将每5分钟执行一次。

如果您要修改现有任务的Repeat_Interval,可以使用以下语法:

BEGIN
  DBMS_SCHEDULER.SET_ATTRIBUTE (
      name                => 'job_name',
      attribute           => 'repeat_interval',
      value               => 'FREQ=MINUTELY;INTERVAL=5');
END;
/

在上面的语法中,name参数是要修改的任务的名称,attribute参数是要修改的属性(repeat_interval),value参数是新的Repeat_Interval值。

Repeat_Interval的格式

Repeat_Interval的格式是一个字符串,其中包含FREQ和INTERVAL选项。FREQ选项表示任务执行的频率,可以是MINUTELY,HOURLY,DAILY,WEEKLY,MONTHLY或YEARLY之一。INTERVAL选项表示任务执行的时间间隔,可以是任何数字。

例如,如果我们要使任务每30分钟执行一次,我们可以使用以下Repeat_Interval:

FREQ=MINUTELY;INTERVAL=30

请注意,我们可以将INTERVAL设置为任何数字,而不仅仅是5或30等常见数字。

Repeat_Interval的高级选项

除了FREQ和INTERVAL选项之外,Repeat_Interval还支持其他一些高级选项,例如:

  • BYDAY:指定任务应在星期几执行(仅适用于WEEKLY频率)。
  • BYMONTHDAY:指定任务应在哪一天执行(仅适用于MONTHLY频率)。
  • BYHOUR:指定任务应在哪个小时执行(仅适用于HOURLY频率)。
  • BYMINUTE:指定任务应在哪个分钟执行。

例如,如果我们要使任务每分钟在15秒和45秒之间执行一次,我们可以使用以下Repeat_Interval:

FREQ=SECONDLY;INTERVAL=1;BYSECOND=15,45

在上面的Repeat_Interval中,我们设置了BYSECOND选项,以便任务只在每分钟的15秒和45秒之间执行。

总结

Repeat_Interval是Oracle中非常有用的定时任务选项,可以帮助我们轻松地配置任务的执行时间。无论是创建新任务还是修改现有任务,我们都可以使用Repeat_Interval选项来控制任务的执行频率和时间间隔。此外,Repeat_Interval还支持各种高级选项,例如BYDAY,BYMONTHDAY等,可以进一步定制任务的执行时间。