declare
cursor cur is--声明游标cur
select B.openid,A.ID ROW_ID
FROM C_CLIENT_VIP A ,VIP_OPENID B
WHERE A.ID=B.ERPID
ORDER BY A.ID;--从A和B表中找到ID对应的openid,并对游标内数组排序
V_COUNTER NUMBER;--声明一个number类型的变量
BEGIN
V_VOUNTER:=0;--初始化变量值为0
FOR ROW IN CUR LOOP--遍历游标
UPDATE C_CLIENT_VIP A SET A.OPENID=ROW.OPENID WHERE A.ID=ROW_ID;
V_COUNTER:=V_COUNTER+1;--每次循环变量值+1
IF(V_COUNTER>=1000) THEN
COMMIT;
V_COUNTER:=0;--每更新1000行,V_COUNTER值为1000时候,就提交给数据库
提交后将变量归零,继续下一个1000行更新
END IF;
END LOOP;
COMMIT;
END;
相关文章
- 02-07浅谈游标选项 Static|Keyset|DYNAMIC|FAST_FORWARD
- 02-07游标
- 02-07sqlserver 游标写法
- 02-07Orcale用户创建dblink和同义词的方法
- 02-07orcale建表脚本
- 02-07游标
- 02-07存储过程中游标的使用
- 02-07这该死的游标,怎么这么难呢?
- 02-07游标
- 02-07mongo数据删除和游标