在oralce中实现定期执行任务

首先确定需要执行的任务

以下存储过程:
create procedure fdgetmessage
is
begin
insert into fdmessagesend  select username,fdcontent.contentinfor,fdcolm.sendernum,'0' from fduser_colm,
fdcolm,fdcontent where fduser_colm.colmid=fdcolm.colmid and fdcontent.colmid=fdcolm.colmid and tag='1' and
 fdcontent.sendtime>sysdate-1 and fdcontent.sendtime<sysdate;
commit;
exception
when others then
rollback;
end;

作用是提取当天需要处理的数据到另一个表中

然后定义一个job

variable n number;
begin
dbms_job.submit(:n,
'fdgetmessage;',
sysdate,
'TRUNC(SYSDATE + 1)'); 
commit;
end;
/
print n;       //n是这个job的编号

这个job作用是每天00:00 后执行一次fdgetmessage存储过程


如果想要立即执行可以用
begin
dbms_job.run(job编号);
commit;
end;
/
修改任务

execute dbms_job.change(job编号,'fdgetmessage;',SYSDATE,'TRUNC(SYSDATE + 1)+(1*60)/(24*60)');

每天早上一点执行

察看作业情况
select job,LAST_DATE,LAST_SEC,next_date,next_sec,failures,broken from user_jobs;

移除任务
begin
dbms_job.remove(job编号);
commit;
end;
/

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值