【求助】弱弱地问一下,想更新Oracle库中某个字段的批量数据,如何写sql语句更新或替换??比如说,我要更新Oracle库中,个人信息表t_ab01中的某一字段身份证aac002,手头上有10000多个人的身份证新号码,想替换进去,如何写这个语句?

解决方案 »

  1.   

    身份证号码是各个单位给提供好的,都存在excel中,大约有一万多条吧;个人编号(和数据库中一致并唯一)一列和身份证号另一列;如果用
    update  t_ab01
    set   aac002='2148,2145,2144'  
    where   id=1"这个语句更新的话,要set多少????(因为有10000万多条记录)
    如何写这样的语句来替换库中的数据???
      

  2.   

    是纵向更新啊!!!
    那是我简要表述了一下,不准确。
    意思就是纵向更新某一列或几列???
    示例如下:
    update  t_ab01 
       set  aac002 in ('123456789012345678','12345678901234567x',‘……')   --身份证号,一万多条,在此省略;  
     where  aac001 in ('081235','045670','……')  --个人编号,一万多条,在此省略;
    这样子,更新估计不行,因为数据量太大,请各路高手指教,如何写这样的sql语句,既能实现批量更新某几列字段的值,而且效率比较高;

      

  3.   

    这个可以这样解决。第一个方法:
    保存为excel,写个工具类实现批量导入操作。第二个方法,先把这些身份证号码,导入到一个临时表,然后写个过程,定义游标读取,然后写入即可。第三个方法,如果仅仅10000条,复制粘贴到表中也不会太长时间估计也就2~5分钟就可以。
      

  4.   

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