oracle作业计划任务配合Oracle存储过程实现多张相同表结构间数据迁移

oracle作业计划任务配合Oracle存储过程实现多张相同表结构间数据迁移

 

一、新建数据迁移存储过程

create or replace procedure proc_pay_data_move_tohis

/*
名称:缴费表数据迁移
功能:迁移缴费正式表数据到历史表
版本:V1.0.0
作者:G007N
日期:2012年11月21日

涉及的表:
移动:TB_PAY_MOBILE -> TB_HIS_PAY_MOBILE
联通:Tb_PAY_UNICOM -> Tb_HIS_PAY_UNICOM
电信:TB_PAY_TELECOM -> TB_HIS_PAY_TELECOM
*/

is

-- 正式表保留31天数据
iDayNum NUMBER :=31;
curdate date := SYSDATE-iDayNum;

begin

-- 1、迁移 移动 缴费记录
   insert into TB_HIS_PAY_MOBILE
   select * from TB_PAY_MOBILE where TRANTIME<curdate;
   delete TB_PAY_MOBILE where TRANTIME<curdate;
  
-- 2、迁移 联通 缴费记录
   insert into Tb_HIS_PAY_UNICOM
   select * from Tb_PAY_UNICOM where TRANTIME<curdate;
   delete Tb_PAY_UNICOM where TRANTIME<curdate;
  
-- 3、迁移 电信 缴费记录
   insert into TB_HIS_PAY_TELECOM
   select * from TB_PAY_TELECOM where TRANTIME<curdate;
   delete TB_PAY_TELECOM where TRANTIME<curdate;

   commit;
  
-- 异常处理
   EXCEPTION
    WHEN OTHERS THEN
        ROLLBACK;
      
end;

二、创建作业计划任务

可以用以下两种方式创建:

1、用语句创建
begin
  sys.dbms_job.submit(job => :job,
         what => 'proc_pay_data_move_tohis;',--分号必须加
         next_date => to_date('13-08-2010 11:26:13', 'dd-mm-yyyy hh24:mi:ss'), --开始执行时间
         interval => 'sysdate+31); --字符型,执行间隔,这里是31天执行一次
  commit;
end;

2、用PL/SQL Developer进行可视化创建

步骤如下:
点击菜单栏 文件->新建->作业(J);或者右键点击左边树形列表Jobs->新建,即可跳出配置窗口,如下:

输入参数后点击应用按钮即可,之后你可以在左边树形列表Jobs下面看到你创建的作业计划任务,右键点击该任务,选择查看,就可看到下图所示:

注意:What 值文本框里面的proc_pay_data_move_tohis;存储过程名称后面一定要打“;“号,当然,如果你配置的参数有问题,你点击应用按钮的时候是无法通过的,会提示你错误信息,你根据错误信息稍作调整即可。

图例参数说明:
What值:存储过程名称或要执行的计划名称;
下一个日期:即开始执行的日期时间;
间隔:执行间隔,即多长时间执行一次;

三、总结

到此,整个过程就已经OK了,该作业计划任务会按照你设置的时间定期自动进行数据迁移,你还可以根据自己的需要自行调整存储过程里面迁移数据的日期范围条件及作业计划任务的执行日期时间。

四、查看作业计划任务

你还可以通过sql语句查看作业计划任务,sql语句如下:
1、查看该用户下的所有计划任务
select * from user_jobs
2、查看该数据库的所有计划任务
select * from dba_jobs
3、查看正在执行的计划任务
select * from dba_jobs_running

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值