Oracle的job,可以指定为每个月的某天,然后只在这一天内间隔10分钟执行一次吗

siwluxuefeng 2015-09-04 03:33:44
Oracle的job,可以指定为每个月的某天,然后只在这一天内间隔10分钟执行一次吗?过了这一天,就再到下个月的今天开始每10分钟执行一次。求解!!
...全文
589 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinsenhome 2015-09-15
  • 打赏
  • 举报
回复
上面的例子不完善,具体的时间点自行修改实现
jinsenhome 2015-09-15
  • 打赏
  • 举报
回复
通过自定义的dbms_job的 interval函数可以实现,不需要修改现有的业务逻辑。 -- 自定义的用于 dbms_job 的interval函数 -- 默认 每月的15日为特殊日期,每10分钟 create or replace function fn_job_interval(v_fix_date int := 15) return date is v_next_job_datetime date; begin if (to_char(sysdate, 'dd') + 0) = v_fix_date then v_next_job_datetime := sysdate + 10 / 1440; -- v_fix_date 日,每10分钟调度一次 else v_next_job_datetime := sysdate + 1;-- 其他日期,推迟到下一日调度一次 end if; return v_next_job_datetime; end; /
binsweet 2015-09-06
  • 打赏
  • 举报
回复
是啊,解决问题不要集中在一个点上,可以分解来看,job10分钟执行一次,过程中判断是否在你规定的日期内,否则跳过。 这样灵活性大,问题也解决了
mayanzs 2015-09-06
  • 打赏
  • 举报
回复
如果每月都是同一天执行的,则好办的,job间隔为10分钟,在执行的过程头上加日期判断,是则执行、否则退出。
卖水果的net 2015-09-05
  • 打赏
  • 举报
回复
job 实现不了这样的需求 。 有两个办法,可以达到你的目的 1.把这个时间判断放在你的过程中,如果时间不满足,就不去执行你的代码。 2.使用crontab ,这也是最合适的。
相关推荐
发帖
Oracle 高级技术

3476

社区成员

Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
帖子事件
创建了帖子
2015-09-04 03:33
社区公告
暂无公告