oracle job 如何在每个小时的29分钟或者59分钟执行

singerice 2011-03-15 09:21:08
如题,我希望我的job,在每个小时的第29分钟或者59分钟执行,我的interval是这么写的:
创建2个job:

trunc(sysdate, 'HH') + 29/1440 和 trunc(sysdate, 'HH') + 59/1440
但是执行的时候要么不执行,要么就是执行失败,请大家给我个建议!!!!!小弟在线急等!!!!!
...全文
441 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
minitoy 2011-03-15
  • 打赏
  • 举报
回复
因为interval是在每次job执行前进行计算,计算下次运行时间.你运行时间要么是29分要么是59分,所以只要判断当前分钟,如果分钟数大于30则本次为59分运行的,所以下次运行时间是下个小时的29分,反之本次是29分运行的,下次运行时间为本小时的59分.
鉴于job有可能有短暂时间漂移,你也可以讲判断的分钟逻辑更改下,以便更符合要求.
singerice 2011-03-15
  • 打赏
  • 举报
回复
楼上的这位,我的意思是在每个小时的第29分钟或者59分钟执行我的job,你这么写,我看的不是很明白,希望你解释下,呵呵
minitoy 2011-03-15
  • 打赏
  • 举报
回复
CASE
WHEN to_char(SYSDATE, 'mi') > 30 THEN--59分执行则下次时间为本次小时时间+1小时,再加29分钟
trunc(SYSDATE, 'hh24') + 1 / 24 + 29 / 24 / 60
ELSE--29分则取本次小时时间+59分钟
trunc(SYSDATE, 'hh24') + 59 / 24 / 60
END

做一个job就可以了
iqlife 2011-03-15
  • 打赏
  • 举报
回复
JOB语句如何的?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧