UPDATE VER_FLOW_UPGREG a
SET closetype=(SELECT b.CLOSETYPEID FROM VER_FLOW_UPGSUMMARY b WHERE a.ID = b.UpgRegID)
WHERE EXISTS (SELECT 1 FROM VER_FLOW_UPGSUMMARY b WHERE a.ID = b.UpgRegID);

解决方案 »

  1.   

    ern(学习Oracle) 兄:不行.single-row subquery returns more than one row
      

  2.   

    就是说你a和b匹配的时候有不止一行可以匹配上。具体用哪一行来更新得看你的需求啊
    如果你不在乎,那么可以:
    UPDATE VER_FLOW_UPGREG a
    SET closetype=(SELECT b.CLOSETYPEID FROM VER_FLOW_UPGSUMMARY b WHERE a.ID = b.UpgRegID and rownum<2)
    WHERE EXISTS (SELECT 1 FROM VER_FLOW_UPGSUMMARY b WHERE a.ID = b.UpgRegID);