频道栏目
首页 > 资讯 > Oracle > 正文

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

12-11-22        来源:[db:作者]  
收藏   我要投稿

oracle作业计划任务配合Oracle存储过程实现多张相同表结构间数据迁移
 
一、新建数据迁移存储过程 
  www.2cto.com  
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; 
  www.2cto.com  
2、用PL/SQL Developer进行可视化创建 
步骤如下: 
点击菜单栏 文件->新建->作业(J);或者右键点击左边树形列表Jobs->新建,即可跳出配置窗口,如下: 
 

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

 
注意:What 值文本框里面的proc_pay_data_move_tohis;存储过程名称后面一定要打“;“号,当然,如果你配置的参数有问题,你点击应用按钮的时候是无法通过的,会提示你错误信息,你根据错误信息稍作调整即可。 
图例参数说明: 
What值:存储过程名称或要执行的计划名称; 
下一个日期:即开始执行的日期时间; 
间隔:执行间隔,即多长时间执行一次; 
  www.2cto.com  
三、总结 
 
到此,整个过程就已经OK了,该作业计划任务会按照你设置的时间定期自动进行数据迁移,你还可以根据自己的需要自行调整存储过程里面迁移数据的日期范围条件及作业计划任务的执行日期时间。 
 
四、查看作业计划任务 
 
你还可以通过sql语句查看作业计划任务,sql语句如下: 
1、查看该用户下的所有计划任务 
select * from user_jobs 
2、查看该数据库的所有计划任务 
select * from dba_jobs 
3、查看正在执行的计划任务 
select * from dba_jobs_running
 
相关TAG标签
上一篇:用PHP做服务器转发层,解决js的ajax跨域访问问题
下一篇:Oracle表空间查询与操作
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站