Oracle数据库更新大批量数据案例
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,更新大批量数据的背景:用户需要将VIP的微信标识,传给用户的ERP会员档案中,已知存量数据约50W行数据,线下的微信标识数据我们开发提供了openid和erpid的csv文件,erpid和线下的会员档
千家信息网最后更新 2026年11月04日Oracle数据库更新大批量数据案例
更新大批量数据的背景:
用户需要将VIP的微信标识,传给用户的ERP会员档案中,已知存量数据约50W行数据,线下的微信标识数据我们开发提供了openid和erpid的csv文件,erpid和线下的会员档案id对应,需要将openid也更新到会员档案里。
更新数量大致分为两大步骤
一、将我们要更新的数据源导入数据库内,需要创建临时表,将数据传入临时表
二、写游标,将临时表内的数据与需要更新的数据进行更新
1.将csv文件里面的数据导入数据库临时表中,先创建临时表
create table vip_openid(erpid number(10), openid varchar(200))

2.临时表创建后,将cvs文件里的数据导入表中,在这里我们选择工具>文本导入器

选择要导入的csv文件,注意csv文件的表字段和数据库表字段对应
选择文件后在界面将会预览导入的数据
3.点击到oracle的数据,选择导入的表,先选择用户名,用户名下的表名,然后选择表与csv文件表字段对应关系,我们选择导入,可以看到提示导入完成。
4.接下来就是对会员表和临时表的数据关联更新,我们先使用直接update方式进行更新试验,该方法只更新5W数据,耗时12分钟左右:
于是参考百度文档建议,写了一个游标如下
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;
大概48W行数据,43秒即更新完毕。
使用以上方式注意一点,因为数据库会员表的ID有索引,所以使用游标速率很快。如我们的多表关联字段没有索引,使用此方式可能效果不是很明显。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
数据
更新
文件
选择
游标
数据库
会员
字段
用户
会员档案
内容
方式
档案
变量
就是
索引
量值
信标
关联
参考
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技的
没上市的科技互联网公司
互联网 科技创新
互联网科技公司发展
互联网科技公司官网
致聘互联网科技
壹账通互联网科技
易通互联网络科技有限公司
北京禾田雨橡互联网科技
互联网科技公司有哪些
深圳国际航运科技和互联网
中国的互联网科技企业的崛起
承德科技产业互联网发展
互联网和黑科技的看法
荆州市昕露互联网络科技有限公司
晓花互联网科技有限公司网址
特约风豹互联网科技为什么扣费
电子商务与互联网科技的关系
互联网对科技影响
广州全民伙伴互联网科技有限公司
互联网科技公司排名
万易互联网科技
猪兼强互联网科技
狮子座互联网科技培训
佰商互联网科技有限公司
中国互联网金融科技基金
知域互联网科技有限公司大骗子
坤平互联网科技
高科技互联网套路
济南小医互联网科技有限公司招聘