暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle DBMS_JOB

askTom 2017-03-18
272

问题描述

嗨,团队,

数据库版本-Oracle 12.1.0.2.0

我在DBMS_JOB中安排了一个每45分钟运行一次的作业。我想要一个条件-如果当前时间介于上午4点EST-上午8点EST之间,那么这项工作就不应该开始。

我想看看DBMS_JOB中是否有任何选项,而不是在代码中进行此检查。

请帮帮我。

谢谢

问候,
马丹·S。

专家解答

DBMS_JOB只是运行一个PL/SQL匿名块,同样,运行一个函数来确定下一个日期。所以你可以这样做:

a)

--
-如果开始时间在04到08之间,则不执行任何操作
--
dbms_job.submit(...,什么 =>q'{begin如果to_char(sysdate,'hh24') 不在 '04' 和 '08' 之间,则my_proc; end if; end;');

或者类似的东西

b)

--
-如果我在上午0315点之后结束,则上午8点进行下一次运行,否则距离现在只有45分钟
--
提交 (什么 =>'我的 _ proc;',
next_date =>q' {to_char(sysdate,'hh24mi')> '0315 '然后trunc(sysdate) 8/24其他sysdate 0.75/24 end}' 的情况;


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论