mysql job 运行时间设置_Oracle 用 Function 设定JOB时间

create or replace function fn_get_myjob_interval return date is Result date; v_nextdate date; v_nexthours numbe

create or replace function fn_get_myjob_interval return date is

Result date;

v_nextdate date;

v_nexthours number;

begin

if to_number(to_char(sysdate, 'dd')) >= 25 then

begin

select max(t.activation_date)

into v_nextdate

from emesp.tp_production_arrange_kt t

where t.activation_flag = 0; /*獲取指派最大的時間*/

exception

when no_data_found then

v_nextdate := sysdate + 1; /*如果沒有隔天檢測*/

end;

if v_nextdate is null then

v_nextdate := sysdate;

v_nexthours := to_number(to_char(v_nextdate, 'hh24')) + 1;

else

if v_nextdate <= sysdate then

/*判斷獲取時間是否小於當前時間*/

update emesp.tp_production_arrange_kt t

set t.activation_date = sysdate + 60 / 1440

where t.activation_flag = 0

and t.activation_date = v_nextdate;

v_nextdate := sysdate + 60 / 1440;

v_nexthours := to_number(to_char(v_nextdate, 'hh24')) + 1;

commit;

else

v_nexthours := to_number(to_char(v_nextdate, 'hh24'));

end if;

end if;

else

v_nextdate := to_date(to_char(sysdate, 'yyyymm') || '2008',

'yyyymmddhh24');

v_nexthours := to_number(to_char(v_nextdate, 'hh24'));

/*設定每個月20號以後才啟動JOB*/

end if;

result := trunc(v_nextdate) + (v_nexthours * 60) / 1440;

/*轉化JOB可用時間*/

return(Result);

end fn_get_myjob_interval;

99a87f9d48604bdf831b02917e3d5d1c.gif

logo.gif

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值