plsql语句块 for 遍历游标

declare
   cursor cur_quick_info is
       select * from ewallet.t_quick_pay_info where status='S' and pay_channel='01001906' and outer_merchant_id='1217015601' and quick_pay_id='201501010010KJ072895';  --微信010商户号老签约快捷信息
  
   v_row_count integer :=0;    --计数
   v_total integer :=0;
   v_quick_temp cur_quick_info%rowtype;
   v_pre_value varchar2(1000);  --快捷签约信息update前的值


begin

for v_quick_temp in cur_quick_info
loop
v_pre_value:='{"accountId":"' || v_quick_temp.account_id || '","status":"' || v_quick_temp.status || '","quickPaySn":"'
  || v_quick_temp.quick_pay_sn || '","quickPayId":"' || v_quick_temp.quick_pay_id || '","payChannel":"' || v_quick_temp.pay_channel
  || '","outerM商户号
updaterchantId":"' || v_quick_temp.outer_merchant_id || '","outerSignSn":"' || v_quick_temp.outer_sign_sn || '"}';

--更改快捷签约的走04新渠道与新e ewallet.t_quick_pay_info set pay_channel='02401906',outer_merchant_id='1301414501', modify_time=sysdate where
 quick_pay_id=v_quick_temp.quick_pay_id;
        --插入一条更改记录
        insert into ewallet.t_quick_pay_info_log(id,quick_pay_id,status,create_ip,description,pre_value,create_time) 
            values(ewallet.T_QUICK_PAY_LOG_SEQ.nextval,v_quick_temp.quick_pay_id,v_quick_temp.status,'','010改为024走新接口扣款',v_pre_value,sysdate);

v_row_count:=v_row_count+1;
v_total:=v_total+1;

if v_row_count mod 10000 = 0 then    --每1w条commit一次
  commit;
  v_row_count:=0;
end if;


        if v_total mod 100000 =0 then
          -- dbms_lock.sleep(3);            --每10w条记录sleep 3秒
           v_total:=0;
        end if;   

end loop;

commit;   --commit不足1w条的事务


end;
/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值