update A a set a.a= b.b from B b on a = '007' 
update A a set a.a = b.b from B b where a = '007', 
都不对,为什么呢? 这下这么写啊!、
update A a set a.a = b.b 
              a.a1 = ** 
              a.a2 = ‘0303’
                a.a3 = **
              a.a4 = sysdate
                 .......  
from B b where a = '007', 
很多的,也不可能只是A.B两个表,我只是举个例子!

解决方案 »

  1.   

    俺也不知道oracle有这样的写法
      

  2.   

    是这个意思么?
    update A a set a =(select b.b from B b  where a = '007')
    where a = '007'
      

  3.   

    update A set a.a=(select b.b from B where a.id=b.id and a.a='007')这才是oracle的写法。
      

  4.   

    update A set a.a=(select b.b from B where a.id=b.id) where a.a='007'
      

  5.   

    那样很多数据的话,还要一个个select吗?如果用数据集的话,有些事直接赋值的,怎么可能?
      

  6.   

    不是select,你怎么确定是对应哪一条记录
      

  7.   

    但是有些值是要固定赋值进去的。
    update A a set a.a = b.b 
                  a.a1 = ** 
                  a.a2 = ‘0303’ 
                    a.a3 = ** 
                  a.a4 = sysdate 
                    .......  这样的。无法实现吗?
      

  8.   

    说到底还是要从其他表select,还是要where找对应记录