JOB定时执行存储过程和对JOB的管理

这篇博客介绍了如何在Oracle数据库中使用存储过程管理和自动执行定时任务(JOB)。包括JobStart用于启动未启动的JOB,ReStart用于重启挂掉的JOB,以及RunJobRelation定期调用这两个过程的逻辑。此外,还提供了用于监控并定时执行RunJobRelation的monitor_job_proc存储过程。
摘要由CSDN通过智能技术生成

实习过程中写了一些关于定时执行存储过程的JOB和对JOB的一些操作(启动、重启),现在记录下来方便自己以后的学习和为别人提供一些参考,写得不太好,希望大家提供点意见。

业务逻辑是这样的:在一个包中(DPK_HQ_POS_MOVE)写了三个存储过程,其中的一个存储过程(RunPosMove(null,null,null))用于调用一系列的函数,另外一个(Del_PosData(15))是用于清除临时表中某个固定时间之后的数据,最后一个(Del_PosDataLog(60))用于清除日志中某个固定时间之后的数据。每个存储过程用一个job来定时执行。

现在要求在一个包中写一些存储过程,其中的一个存储过程(JobStart)用于检测没有启动的job,并将其启动。一个存储过程(ReStart)用于当job挂掉后,用于重启job。再写一个存储过程(RunJobRelation)来调用这两个存储过程,而这个存储过程是定时执行的,因此该存储过程对应一个job,写在一个存储过程(monitor_job_proc)中。

具体实现代码如下:

create or replace package body dpk_hq_job_manage is

procedure RunJobRelation is
begin
   JobStart;
   restart;
end RunJobRelation;

procedure JobStart is
  job_num number;
  n_job number;
  flag number;
begin
  select count(*) into job_num from user_jobs where what in('DPK_HQ_POS_MOVE.RunPosMove(null,null,null);',
                                                            'DPK_HQ_POS_MOVE.Del_PosData(15);',
                                                            'DPK_HQ_POS_MOVE.Del_PosDataLog(60);');

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值