【求助】弱弱地问一下,想更新Oracle库中某个字段的批量数据,如何写sql语句更新或替换??

时间:2021-10-12 14:55:38
【求助】弱弱地问一下,想更新Oracle库中某个字段的批量数据,如何写sql语句更新或替换??

比如说,我要更新Oracle库中,个人信息表t_ab01中的某一字段身份证aac002,手头上有10000多个人的身份证新号码,想替换进去,如何写这个语句?

7 个解决方案

#1


新身份证号从何而来?规则如何?

#2


身份证号码是各个单位给提供好的,都存在excel中,大约有一万多条吧;个人编号(和数据库中一致并唯一)一列和身份证号另一列;

如果用
update  t_ab01
set   aac002='2148,2145,2144'  
where   id=1"

这个语句更新的话,要set多少????(因为有10000万多条记录)
如何写这样的语句来替换库中的数据???

#3


是纵向更新吧,怎么会是横向更新呢?
1对应2148
2对应2145 
是这样的结果吧。

#4


是纵向更新啊!!!
那是我简要表述了一下,不准确。
意思就是纵向更新某一列或几列???
示例如下:
update  t_ab01 
   set  aac002 in ('123456789012345678','12345678901234567x',‘……')   --身份证号,一万多条,在此省略;  
 where  aac001 in ('081235','045670','……')  --个人编号,一万多条,在此省略;


这样子,更新估计不行,因为数据量太大,请各路高手指教,如何写这样的sql语句,既能实现批量更新某几列字段的值,而且效率比较高;



#5


没明白啥意思

#6


这个可以这样解决。

第一个方法:
保存为excel,写个工具类实现批量导入操作。

第二个方法,先把这些身份证号码,导入到一个临时表,然后写个过程,定义游标读取,然后写入即可。

第三个方法,如果仅仅10000条,复制粘贴到表中也不会太长时间估计也就2~5分钟就可以。

#7


建表tb2把數據先導入oracle
然後
update tb1  t1 set t1.aac002=(select tb2.aac002 from  tb2 t2 
                               where t2.id=t1.id)

#1


新身份证号从何而来?规则如何?

#2


身份证号码是各个单位给提供好的,都存在excel中,大约有一万多条吧;个人编号(和数据库中一致并唯一)一列和身份证号另一列;

如果用
update  t_ab01
set   aac002='2148,2145,2144'  
where   id=1"

这个语句更新的话,要set多少????(因为有10000万多条记录)
如何写这样的语句来替换库中的数据???

#3


是纵向更新吧,怎么会是横向更新呢?
1对应2148
2对应2145 
是这样的结果吧。

#4


是纵向更新啊!!!
那是我简要表述了一下,不准确。
意思就是纵向更新某一列或几列???
示例如下:
update  t_ab01 
   set  aac002 in ('123456789012345678','12345678901234567x',‘……')   --身份证号,一万多条,在此省略;  
 where  aac001 in ('081235','045670','……')  --个人编号,一万多条,在此省略;


这样子,更新估计不行,因为数据量太大,请各路高手指教,如何写这样的sql语句,既能实现批量更新某几列字段的值,而且效率比较高;



#5


没明白啥意思

#6


这个可以这样解决。

第一个方法:
保存为excel,写个工具类实现批量导入操作。

第二个方法,先把这些身份证号码,导入到一个临时表,然后写个过程,定义游标读取,然后写入即可。

第三个方法,如果仅仅10000条,复制粘贴到表中也不会太长时间估计也就2~5分钟就可以。

#7


建表tb2把數據先導入oracle
然後
update tb1  t1 set t1.aac002=(select tb2.aac002 from  tb2 t2 
                               where t2.id=t1.id)