作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在打包的 MY_PACKAGE_X 中有一个名为 MY_PROCEDURE_X 的过程。
我的要求是该程序需要在每个月的 1 号和 16 号执行。
如果它在当月的 1 号运行,那么执行时间应该是上午 10:00,
如果它在每月 16 日运行,则执行时间应为下午 05:00。
我可以做一份工作来做到这两点吗?
下面是我的半成品脚本:
BEGIN
dbms_scheduler.create_job (
job_name => 'PROCESS_MY_JOB_X',
JOB_TYPE => 'PLSQL_BLOCK',
JOB_ACTION => 'MY_PACKAGE_X.MY_PROCEDURE_X',
START_DATE => TO_DATE('01-11-2014 10:00','DD-MM-YYYY HH24:MI'),
repeat_interval => 'FREQ=DAILY; INTERVAL=14',
ENABLED => TRUE,
comments => 'RUN JOB ON 1ST AND 16TH OF EVERY MONTH');
END;
/
最佳答案
编辑:我之前的回答实际上没有用。由于某种原因,无法在指定的时间表中使用 BYHOUR - 它给出了错误。
相反,我发现了一种在单个 repeat_interval
表达式中执行此操作的方法:
'FREQ=MONTHLY;BYMONTHDAY=1,16;BYHOUR=10,17;BYSETPOS=1,4'
repeat_interval
测试
dbms_scheduler.evaluate_calendar_string
表达式,例如:
declare
startdate date;
dateafter date;
nextdate date;
begin
startdate := TO_DATE('01-11-2014 10:00','DD-MM-YYYY HH24:MI');
dateafter := startdate;
for i in 1..24 loop
dbms_scheduler.evaluate_calendar_string(
'FREQ=MONTHLY;BYMONTHDAY=1,16;BYHOUR=10,17;BYSETPOS=1,4'
, startdate
, dateafter
, nextdate
);
dbms_output.put_line(to_char(nextdate,'YYYY-MM-DD HH24:MI'));
dateafter := nextdate;
end loop;
end;
/
2014-11-16 17:00
2014-12-01 10:00
2014-12-16 17:00
2015-01-01 10:00
2015-01-16 17:00
2015-02-01 10:00
2015-02-16 17:00
2015-03-01 10:00
2015-03-16 17:00
2015-04-01 10:00
2015-04-16 17:00
2015-05-01 10:00
2015-05-16 17:00
2015-06-01 10:00
2015-06-16 17:00
2015-07-01 10:00
2015-07-16 17:00
2015-08-01 10:00
2015-08-16 17:00
2015-09-01 10:00
2015-09-16 17:00
2015-10-01 10:00
2015-10-16 17:00
2015-11-01 10:00
关于oracle dbms_scheduler repeat_interval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26602572/
我在打包的 MY_PACKAGE_X 中有一个名为 MY_PROCEDURE_X 的过程。 我的要求是该程序需要在每个月的 1 号和 16 号执行。 如果它在当月的 1 号运行,那么执行时间应该是上午
我正在尝试创建一个两天运行一次的任务(删除一些缓存数据)。这将在 Oracle 11g 上运行。到目前为止,我想出了以下匿名 block : begin DBMS_SCHEDULER.CREATE
我是一名优秀的程序员,十分优秀!