Oracle 调度程序中的作业循环

Job looping in Oracle scheduler

在 oracle 11g 中,如果我有一个作业 A,是否可以安排它每天从上午 10 点到上午 11 点重复执行。

是的,可以安排。

Oracle 作业队列

Oracle 作业队列允许在预定义的时间安排和执行 PL/SQL 个例程(作业)and/or 定期重复执行作业。 Oracle 提供了一个内置包 DBMS_JOB 来安排作业。 DBMS_JOB 包实际上是 API 到称为作业队列的 Oracle 子系统中。 DBMS_JOB 包是在安装 Oracle 数据库时创建的。

您可以获得详细信息:https://www.developer.com/db/article.php/3713896/Scheduling-Jobs-in-the-Database.htm

你可以如下操作,下面将从10A.M开始执行。到 11 A.M。每10分钟重复一次(根据您的要求更改频率)

BEGIN
   DBMS_SCHEDULER.create_job (
      job_name          => 'JOB_NAME',
      job_type          => 'PLSQL_BLOCK',
      job_action        => 'BEGIN your_procedure_name; END;',
      start_date        => SYSDATE,
      repeat_interval   => 'FREQ=DAILY; BYHOUR=10,11; BYMINUTE=0,10;',
      enabled           => TRUE,
      auto_drop         => FALSE);
END;
/

"it should execute as much time as possible"

请记住,您在一小时内尽可能多地执行的工作不应过度