解决Oracle批量修改问题
程序员文章站
2022-03-16 20:09:59
问题:根据唯一字段编码修改其它字段,修改部分数据,数量在上万条数据,数据大,一开始就卡死了!笨办法,一条一条修改不知可年可月啊。其他方法个人原因实在是无能为力。如下:...
问题:根据唯一字段编码修改其它字段,修改部分数据,数量在上万条数据,数据大,一开始就卡死了!笨办法,一条一条修改不知可年可月啊。其他方法个人原因实在是无能为力。如下:
update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-2v'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-2w'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-2x'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-2y'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-2z'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-31'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-32'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-33'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-34'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-35'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-36'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-37'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-38'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-39'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3a'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3b'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3c'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3d'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3e'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3f'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3g'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3h'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3i'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3j'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3k'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3l'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3m'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3n'; update ka02_new set aka065=1,aka166=1 where aka060='x-p02ca-a010-a001-3o'; ....
百度结果:百度了一下,很多解决方案,有的写的很粗糙,完全不理解,也许自己水平问题。有的是自己真的看不懂,个人水平跟不上。
解决方案:最后的解决办法,还是老办法,就是新建一张临时表(表b:a_2017 ),把所修改的唯一字段编码和修改后的数据放在b表。sql大体如下(原表a:ka02_new ,唯一字段aka060 ,修改的字段分别为aka065 和aka166 ):
update ka02_new b set b.aka065 = (select a.aka065 from a_2017 a where a.aka060 = b.aka060), b.aka166 = (select a.aka166 from a_2017 a where a.aka060 = b.aka060) where b.aka060 in (select a.aka060 from a_2017 a);
总结
以上所述是小编给大家介绍的解决oracle批量修改问题,希望对大家有所帮助
上一篇: Vue两个同级组件传值实现
推荐阅读
-
Oracle更换为MySQL遇到的问题及解决
-
如何解决Oracle GoldenGate 没有主键的问题?
-
Excel 表格常被同事修改 1%的人通过设置权限密码来解决问题
-
简单的Oracle小问题解决
-
Oracle安装过程中遇到的一些问题及解决方案
-
Oracle 管道 解决Exp/Imp大量数据处理问题
-
Oracle Enterprise Linux 5安装Oracle 10g碰到的若干问题及解决方法
-
修改计算机名或IP后Oracle10g无法启动服务的解决办法
-
Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)_MySQL
-
ORA-28002/ORA-28000 解决11g 密码过期、密码输错锁住用户问题--修改 default profil