比如说,我要更新Oracle库中,个人信息表t_ab01中的某一字段身份证aac002,手头上有10000多个人的身份证新号码,想替换进去,如何写这个语句?
7 个解决方案
#1
新身份证号从何而来?规则如何?
#2
身份证号码是各个单位给提供好的,都存在excel中,大约有一万多条吧;个人编号(和数据库中一致并唯一)一列和身份证号另一列;
如果用
update t_ab01
set aac002='2148,2145,2144'
where id=1"
这个语句更新的话,要set多少????(因为有10000万多条记录)
如何写这样的语句来替换库中的数据???
如果用
update t_ab01
set aac002='2148,2145,2144'
where id=1"
这个语句更新的话,要set多少????(因为有10000万多条记录)
如何写这样的语句来替换库中的数据???
#3
是纵向更新吧,怎么会是横向更新呢?
1对应2148
2对应2145
是这样的结果吧。
1对应2148
2对应2145
是这样的结果吧。
#4
是纵向更新啊!!!
那是我简要表述了一下,不准确。
意思就是纵向更新某一列或几列???
示例如下:
update t_ab01
set aac002 in ('123456789012345678','12345678901234567x',‘……') --身份证号,一万多条,在此省略;
where aac001 in ('081235','045670','……') --个人编号,一万多条,在此省略;
这样子,更新估计不行,因为数据量太大,请各路高手指教,如何写这样的sql语句,既能实现批量更新某几列字段的值,而且效率比较高;
那是我简要表述了一下,不准确。
意思就是纵向更新某一列或几列???
示例如下:
update t_ab01
set aac002 in ('123456789012345678','12345678901234567x',‘……') --身份证号,一万多条,在此省略;
where aac001 in ('081235','045670','……') --个人编号,一万多条,在此省略;
这样子,更新估计不行,因为数据量太大,请各路高手指教,如何写这样的sql语句,既能实现批量更新某几列字段的值,而且效率比较高;
#5
没明白啥意思
。
。
#6
这个可以这样解决。
第一个方法:
保存为excel,写个工具类实现批量导入操作。
第二个方法,先把这些身份证号码,导入到一个临时表,然后写个过程,定义游标读取,然后写入即可。
第三个方法,如果仅仅10000条,复制粘贴到表中也不会太长时间估计也就2~5分钟就可以。
第一个方法:
保存为excel,写个工具类实现批量导入操作。
第二个方法,先把这些身份证号码,导入到一个临时表,然后写个过程,定义游标读取,然后写入即可。
第三个方法,如果仅仅10000条,复制粘贴到表中也不会太长时间估计也就2~5分钟就可以。
#7
建表tb2把數據先導入oracle
然後
update tb1 t1 set t1.aac002=(select tb2.aac002 from tb2 t2
where t2.id=t1.id)
然後
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万多条记录)
如何写这样的语句来替换库中的数据???
如果用
update t_ab01
set aac002='2148,2145,2144'
where id=1"
这个语句更新的话,要set多少????(因为有10000万多条记录)
如何写这样的语句来替换库中的数据???
#3
是纵向更新吧,怎么会是横向更新呢?
1对应2148
2对应2145
是这样的结果吧。
1对应2148
2对应2145
是这样的结果吧。
#4
是纵向更新啊!!!
那是我简要表述了一下,不准确。
意思就是纵向更新某一列或几列???
示例如下:
update t_ab01
set aac002 in ('123456789012345678','12345678901234567x',‘……') --身份证号,一万多条,在此省略;
where aac001 in ('081235','045670','……') --个人编号,一万多条,在此省略;
这样子,更新估计不行,因为数据量太大,请各路高手指教,如何写这样的sql语句,既能实现批量更新某几列字段的值,而且效率比较高;
那是我简要表述了一下,不准确。
意思就是纵向更新某一列或几列???
示例如下:
update t_ab01
set aac002 in ('123456789012345678','12345678901234567x',‘……') --身份证号,一万多条,在此省略;
where aac001 in ('081235','045670','……') --个人编号,一万多条,在此省略;
这样子,更新估计不行,因为数据量太大,请各路高手指教,如何写这样的sql语句,既能实现批量更新某几列字段的值,而且效率比较高;
#5
没明白啥意思
。
。
#6
这个可以这样解决。
第一个方法:
保存为excel,写个工具类实现批量导入操作。
第二个方法,先把这些身份证号码,导入到一个临时表,然后写个过程,定义游标读取,然后写入即可。
第三个方法,如果仅仅10000条,复制粘贴到表中也不会太长时间估计也就2~5分钟就可以。
第一个方法:
保存为excel,写个工具类实现批量导入操作。
第二个方法,先把这些身份证号码,导入到一个临时表,然后写个过程,定义游标读取,然后写入即可。
第三个方法,如果仅仅10000条,复制粘贴到表中也不会太长时间估计也就2~5分钟就可以。
#7
建表tb2把數據先導入oracle
然後
update tb1 t1 set t1.aac002=(select tb2.aac002 from tb2 t2
where t2.id=t1.id)
然後
update tb1 t1 set t1.aac002=(select tb2.aac002 from tb2 t2
where t2.id=t1.id)