oracle存储过程:一个表的内容转储到多个表

create or replace procedure pub_obt_trans_prc is

    msgout varchar2(600);
    lasttime date;
    CURSOR cur_datalist IS
    select * from test
begin
 for rec in cur_datalist loop
     ---------test表转储表到testa和testb两张表

     insert into testa(test1,test2)
     values
     (rec.test1,rec.test2);
     insert into testb(test3,test4)
     values

     (rec.test3,rec.test4);


     commit;
     lasttime :=rec.datetime;
 end loop;

 -----写日志
  if(lasttime IS null) Then
    INSERT INTO PUB_DATATRANS_LOG(DATAID,DATANAME,TRANSTIME,DATATIME,LOG)
  VALUES('1','1',SYSDATE,lasttime,'NO DATA');
  Else
  INSERT INTO PUB_DATATRANS_LOG(DATAID,DATANAME,TRANSTIME,DATATIME,LOG)
  VALUES('1','1',SYSDATE,lasttime,'OK');
  END if;
  commit;

  EXCEPTION
   WHEN OTHERS THEN
      ROLLBACK;
      msgout := 'pub_obt_trans_prc' || SUBSTR(SQLERRM,1,500);
      INSERT INTO PUB_DATATRANS_LOG(DATAID,DATANAME,TRANSTIME,DATATIME,LOG)
      VALUES('','58237',SYSDATE,lasttime,msgout);
      COMMIT;
end pub_obt_trans_prc;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值