Oracle中定时作业(Job)使用方法详解

 初次接触到项目需要用定时调度,数据备份任务。所以上网也查阅了很多资料,由此依据自己的学习能力整理下,请大家多补充多支持下。

 用Oracle的存储过程,可以让我们在编写程序的时候减少很多的量,利用Oracle良好的性能作为基础,直接能提升程序的执行效率和稳定的性能。

定时执行存储过程的时候,就要用到“Oracle系统的包Job,还有功能包目前还没接触到...

本例中用PLSQL。首先登入你创建的用户,打开SQL执行窗口命令

  输入:show  parameter job


设置job执行个数为10,上限为1000。以上属性值为0,则导致job作业无法执行.手动执行job作业是可行的。但是无法执行指定时间内执行。

输入:select * from dba_jobs(dba下可能有内置的作业),先熟悉下Job的参数属性。

  1. 创建存储过程
    功能:表数据批量插入另一种表(表数据迁移)
    <pre name="code" class="html" style="font-weight: bold;"><span style="font-size:10px;">create or replace procedure存储过程名称 as
    </span>
    begin
     delete from  临时表 a where  exists (select pid from 主表 b where b.pid=a.pid ); 
      insert into 主表  select * from 临时表;
    end;

     
     
  2. 调用的过程调试下(查找下Procedures文件夹下的过程没红叉一般没什么错误)你可先在临时表上增加几条数据(有几条和临时表主键是一样的{也可以用其他属性比如IP一样的或者name一样的}),主表上也是。
    begin 
    	存储过程名称;
            commit;
    end;
  3. 创建job作业
    declare  job1  number;
    begin
       dbms_job.submit(
       job1,     --定时器ID,系统会自动获得(递增)
       '存储过程名称;',   --执行的过程名
       sysdate,   --定时器开始的时间(当前系统时间)
       'sysdate + 10/(24 * 60 * 60)'  --设置定时器执行频率(这里是秒10秒执行一次)
       );
        commit;
    end;
    
  4. 运行作业
    dbms_job.run(系统分配作业的编号)
    不知道可以查询下
    select * from user_jobs(第一个属性就是啦~)
    登入数据库查下你的job是不是每隔10秒改变一次下次执行的时间,在文件夹DMBS_Jobs里面。右键点击View既可。










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值