如何使用 Oracle dbms_scheduler 到 运行 程序每 5 分钟,每天从 7:30am 到 21:30pm?
how to use Oracle dbms_scheduler to run procedure every 5 minutes, every day from 7:30am to 21:30pm?
我正在使用 Oracle 12c 数据库。我必须安排一个程序,从 7:30am 到 21:30pm 每天每 5 分钟 运行。
从 08:00 到 20:55
每天实际执行 运行 秒
begin
dbms_scheduler.create_job(
job_name=>'JobInvioSmsVa',
job_type=>'plsql_block',
repeat_interval=> 'FREQ=DAILY;BYHOUR=8,9,10,11,12,13,14,15,16,17,18,19,20;BYMINUTE=0,5,10,15,20,25,30,35,40,45,50,55',
job_action=>'INVIO_SMS_VA;',
enabled=>true);
end;
/
您可以简单地:
begin
dbms_scheduler.create_job(
job_name=>'JobInvioSmsVa',
job_type=>'plsql_block',
repeat_interval=> 'FREQ=DAILY;BYHOUR=7,8,9,10,11,12,13,14,15,16,17,18,19,20,21;BYMINUTE=0,5,10,15,20,25,30,35,40,45,50,55',
job_action=>
'begin
if sysdate
between trunc(sysdate)+7.5/24
and trunc(sysdate)+21.5/24
then
INVIO_SMS_VA;
end if;
end;',
enabled=>true);
end;
/
您可以创建三个时间表:
begin
dbms_scheduler.create_job(
job_name=>'JobInvioSmsVa',
job_type=>'plsql_block',
repeat_interval=> 'FREQ=DAILY;BYHOUR=8,9,10,11,12,13,14,15,16,17,18,19,20;BYMINUTE=0,5,10,15,20,25,30,35,40,45,50,55',
job_action=>'INVIO_SMS_VA;',
enabled=>true);
dbms_scheduler.create_job(
job_name=>'JobInvioSmsVa_morning',
job_type=>'plsql_block',
repeat_interval=> 'FREQ=DAILY;BYHOUR=7;BYMINUTE=30,35,40,45,50,55',
job_action=>'INVIO_SMS_VA;',
enabled=>true);
dbms_scheduler.create_job(
job_name=>'JobInvioSmsVa_evening',
job_type=>'plsql_block',
repeat_interval=> 'FREQ=DAILY;BYHOUR=21;BYMINUTE=0,5,10,15,20,25,30',
job_action=>'INVIO_SMS_VA;',
enabled=>true);
end;
/
INCLUDE
子句不能与 BYHOUR
或 BYMINUTE
组合使用,因此您不能将它们合并为一个时间表。
我正在使用 Oracle 12c 数据库。我必须安排一个程序,从 7:30am 到 21:30pm 每天每 5 分钟 运行。 从 08:00 到 20:55
每天实际执行 运行 秒begin
dbms_scheduler.create_job(
job_name=>'JobInvioSmsVa',
job_type=>'plsql_block',
repeat_interval=> 'FREQ=DAILY;BYHOUR=8,9,10,11,12,13,14,15,16,17,18,19,20;BYMINUTE=0,5,10,15,20,25,30,35,40,45,50,55',
job_action=>'INVIO_SMS_VA;',
enabled=>true);
end;
/
您可以简单地:
begin
dbms_scheduler.create_job(
job_name=>'JobInvioSmsVa',
job_type=>'plsql_block',
repeat_interval=> 'FREQ=DAILY;BYHOUR=7,8,9,10,11,12,13,14,15,16,17,18,19,20,21;BYMINUTE=0,5,10,15,20,25,30,35,40,45,50,55',
job_action=>
'begin
if sysdate
between trunc(sysdate)+7.5/24
and trunc(sysdate)+21.5/24
then
INVIO_SMS_VA;
end if;
end;',
enabled=>true);
end;
/
您可以创建三个时间表:
begin
dbms_scheduler.create_job(
job_name=>'JobInvioSmsVa',
job_type=>'plsql_block',
repeat_interval=> 'FREQ=DAILY;BYHOUR=8,9,10,11,12,13,14,15,16,17,18,19,20;BYMINUTE=0,5,10,15,20,25,30,35,40,45,50,55',
job_action=>'INVIO_SMS_VA;',
enabled=>true);
dbms_scheduler.create_job(
job_name=>'JobInvioSmsVa_morning',
job_type=>'plsql_block',
repeat_interval=> 'FREQ=DAILY;BYHOUR=7;BYMINUTE=30,35,40,45,50,55',
job_action=>'INVIO_SMS_VA;',
enabled=>true);
dbms_scheduler.create_job(
job_name=>'JobInvioSmsVa_evening',
job_type=>'plsql_block',
repeat_interval=> 'FREQ=DAILY;BYHOUR=21;BYMINUTE=0,5,10,15,20,25,30',
job_action=>'INVIO_SMS_VA;',
enabled=>true);
end;
/
INCLUDE
子句不能与 BYHOUR
或 BYMINUTE
组合使用,因此您不能将它们合并为一个时间表。