你这个写法没什么大问题,但是一般情况下建议加一个条件:
update si3.per_Reg a set a.cjgzrq=(select b.cbrq from si0001.wqg20141005 b where a.ryid=b.ryid)
where exists(select * from si0001.wqg20141005 b where a.ryid=b.ryid)

解决方案 »

  1.   

    ORA-01427:单行子查询返回多个行
    报这个提示 能帮忙分析下什么原因吗
      

  2.   

    这个子查询返回了多条记录:select b.cbrq from si0001.wqg20141005 b where a.ryid=b.ryid导致报错
      

  3.   

    也有可能是返回0行造成的,0行或多行错误代码是一样的
    update si3.per_Reg a set a.cjgzrq=(select min(b.cbrq) from si0001.wqg20141005 b where a.ryid=b.ryid)
    where exists(select 1 from si0001.wqg20141005 b where a.ryid=b.ryid)
      

  4.   

    si0001.wqg20141005 表中的ryid 不唯一,造成的。