Oracle数据库更新大批量数据案例
发表于:2025-11-18 作者:千家信息网编辑
千家信息网最后更新 2025年11月18日,更新大批量数据的背景:用户需要将VIP的微信标识,传给用户的ERP会员档案中,已知存量数据约50W行数据,线下的微信标识数据我们开发提供了openid和erpid的csv文件,erpid和线下的会员档
千家信息网最后更新 2025年11月18日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安全错误
数据库的锁怎样保障安全
app软件开发大学学什么
高中信息技术数据库中的报表
常见的服务器
数据库的PD图
服务器安全增强措施
网络技术 考什么软件
mtu 网络技术
数据库开发所需流程
网络安全大赛赛制
jtl文件如何存入数据库
网络安全隐患显而易见
幕智网络技术服务中心
平安京都有哪些服务器
编写一个系统用什么数据库
咪咕动漫软件开发支撑方
上海惠普服务器虚拟化哪家便宜
卧龙吟2数据库
莱阳网络安全大队宋宝辉
打英雄联盟提示服务器连接不上
全国软件开发工具试题
开展网络安全专题讲座怎么组织
数据库和代码是如何连接的
网络安全ct方向
延安数据库安全审计
面试软件开发人员
单位的网络安全有哪些方面
数据库应用技术微课
软件开发企业的存货周转天数
戴夫服务器ip
人工智能获取大数据库