update aa p
   set aa_code=(
     select c.aa_code 
     from "bb" r, cc c
     where p.bb_code = r.bb_code
     and r.name = c.name
)
where exists (
     select c.aa_code 
     from "bb" r, cc c
     where p.bb_code = r.bb_code
     and r.name = c.name
)

解决方案 »

  1.   

    oracle 不能用这种update语法的吗
      

  2.   

    楼主用什么工具转到ORACLE的
    我用DTS转过去了  好多表了  用不了....
      

  3.   

    问题是我用wiler(@_@) 的方法处理2万条记录 很长时间也没反应,而在sql server几秒就解决了
      

  4.   

    oracle 中没有uodate ..set ..from 语法,着是SQLSERVER 中的语句!
      

  5.   


    问题是我用wiler(@_@) 的方法处理2万条记录 很长时间也没反应,而在sql server几秒就解决了楼主,你建立索引了吗?才两万条不可能那么慢
      

  6.   

    wiler(@_@)的语法是正确的,用于批量更新。
    但是有限制因素。
    速度慢,需要建立索引就可以解决了。 建立p.bb_code 、 r.bb_code、r.name、c.name索引。可以是唯一性索引,也可以是符合索引。甚至可以建立反序索引。建议楼主网上搜索以下索引的试用方法。索引很有讲究的。