百万级别数据的更新

1.存储过程批量更新

declare
 v_int number;
 v_loanid varchar(100);
 v_tmName varchar(100);
 v_tmMobile varchar(100);
 v_tmPid varchar(100);
 cursor yb is
    select loanid,tmName,tmMobile,tmPid from bhzx_c1_tm;
 
 begin
  open yb;   --打开游标
  loop       --开始标记
   fetch yb into v_loanid,v_tmName,v_tmMobile,v_tmPid;--游标赋值  当然这边可以赋值多个值
   
   update BHZX_D3_TM b1 set
     b1.tmname = v_tmName,
     b1.tmpid = v_tmPid,
     b1.tmmobile = v_tmMobile
    where b1.loanid = v_loanid;
      
   v_int := v_int+1;
   dbms_output.put_line('***');
    dbms_output.put_line(v_int);


   if(v_int >=5000) then
     commit;   --5000条提交一次 分单系统压力,提高上传的效率
     v_int :=0;
   end if;
   
   exit when yb%notfound;--游标一条一条地遍历记录,当找不到记录时退出
  end loop;  --结束标记

commit;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值