update a_czy a
set a.xm = (select xm from b_czy b where a.czdh = b.czdh);那为什么上面这条语句报错说:
SQLWKS> update a_czy a
     2> set a.xm = (select xm from b_czy b where a.czdh = b.czdh);
ORA-01407: 无法更新 ("APPUSR"."A_CZY"."XM") 为 NULLa_czy 跟 a_czy 的表结构完全一样,只是数据不同!

解决方案 »

  1.   

    update a_czy a
    set a.xm = (select xm from b_czy b where a.czdh = b.czdh);那为什么上面这条语句报错说:
    SQLWKS> update a_czy a
         2> set a.xm = (select xm from b_czy b where a.czdh = b.czdh);
    ORA-01407: 无法更新 ("APPUSR"."A_CZY"."XM") 为 NULLa_czy 跟 b_czy 的表结构完全一样,只是数据不同!
    而且b_czy.xm字段没有一条记录为空或者空格!
      
      

  2.   

    > set a.xm = (select xm from b_czy b where a.czdh = b.czdh);
    ORA-01407: 无法更新 ("APPUSR"."A_CZY"."XM") 为 NULL
    你的xm字段设为允许空,应该能通过
    然后检查你的(select xm from b_czy b where a.czdh = b.czdh);这句话,有可能查不出数据,所以报错
      

  3.   

    update a_czy a
    set a.xm = (select xm from b_czy b where a.czdh = b.czdh);这样是更新a表里面得所有数据 如果b表里面没有a表得czdh那就会为空应该加各限制,
    update a_czy a
    set a.xm = (select xm from b_czy b where a.czdh = b.czdh)
    where a.czdh in (select czdh from b_czy)
      

  4.   

    谢谢 myamor(张俊杰) !
    我刚才也是需要这么update,折腾了好长时间。终于按楼上的例子搞定了。