您好我必须显示一个报告,报告数据应该在每个星期一刷新。 自动 我检查过oracle调度程序。我看不到将间隔限制在星期一的任何选项 。 我想把开始日期定为星期一,重复7天。 这是好方法
答案 0 :(得分:0)
嗨,我得到了答案。 你想要像下面的代码一样正确。 每周工作日有3种方式来安排工作,可以是每个星期一或每天 在这里,我试图在每个星期一早上6点自动运行作业
我们必须设定频率 我们可以使用以下代码之一
FREQ=DAILY; BYDAY=MON; BYHOUR=6; BYMINUTE=0; BYSECOND=0;
FREQ=WEEKLY; BYDAY=MON; BYHOUR=6; BYMINUTE=0; BYSECOND=0;
FREQ=YEARLY; BYDAY=MON; BYHOUR=6; BYMINUTE=0; BYSECOND=0;
begin
dbms_scheduler.create_job(
job_name => 'JOB_TEST',
job_type => 'PLSQL_BLOCK',
job_action => 'begin PROCEDURE_NAME; end;',
start_date => systimestamp,
end_date => null,
comments => 'job is created for running automatically on every monday',
enabled => true,
repeat_interval => 'FREQ=WEEKLY; BYDAY=MON; BYHOUR=0; BYMINUTE=0; BYSECOND=0;');
end;
在oracle中我们可以使用DBMS Scheduler或DBMS JOBS编写作业 DBMS Scheduler是上面的例子,它是高级的, 如果你想使用DMBS JOBS做同样的问题
begin
sys.dbms_job.submit(job => :job,
what => 'procedure name;',
next_date => NEXT_DAY(TRUNC(SYSDATE),'MONDAY'),
interval => 'NEXT_DAY(TRUNC(SYSDATE),''MONDAY'')');
commit;
end;
/