ORA-01427 单行子查询返回多个行

thinoft 2012-10-09 09:36:26
oracle数据库中想用一张表的一列值替换另一张表的一列值,但是报了文章标题上的异常,SQL如下:
update flow02.usr_user a set a.user_mobile3 = (select b.usercode from usruser b where a.user_email=b.useremail) 
where exists (select null from usruser where a.user_email=usruser.useremail)
,求解决,很急!
...全文
425 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
thinoft 2012-10-31
  • 打赏
  • 举报
回复
谢谢大家的帮忙,问题已经解决了
update flow02.usr_user a set a.user_mobile3 = (select b.usercode from usruser b where a.user_email=b.useremail and rownum=1) 
where exists (select null from usruser where a.user_email=usruser.useremail)

加了标红的那一句and rownum=1
ray_suen 2012-10-10
  • 打赏
  • 举报
回复
查询语句结果集为2行或2行以上,所以报错。你需要重新根据你的业务需求修改查询语句
qurihong 2012-10-10
  • 打赏
  • 举报
回复
应该用主键列来限制
johnny_ 2012-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

select b.usercode from usruser b where a.user_email=b.useremail

你的这个语句返回了2条或以上的结果
[/Quote]
可以想一下再加个什么条件能够是匹配的结果只有一条,如果无法保证返回的结果只有一条,那么就后面再加个条件 rownum <=1;
yuppy 2012-10-09
  • 打赏
  • 举报
回复
select b.usercode from usruser b where a.user_email=b.useremail

你的这个语句返回了2条或以上的结果

1,618

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧