跪求在线等候

xiao_dd 2013-02-02 01:25:49
update PRO_PLANT_SUMMARY_ALL a set M_L_NORMAL_NET=
(select M_JZJ171 from PRO_PLANT_ALL_ITEM b
where b.TAB_YEAR=2013+-1
and TAB_MONTH = 1+0
and ((a.id=b.id)
or( a.parent_id = b.parent_id
and b.sub_dept_code is not null
and b.sub_dept_code = (
select c.sub_dept_code from PRO_PLANT_ALL_ITEM c
where c.tab_year = a.tab_year
and c.tab_month = a.tab_month
and c.id = a.id)
)
)
)
where a.TAB_YEAR=2013 and a.TAB_MONTH=1

执行报错信息: ora-01427 single-row subquery returns more than one row
跪求排查语句
...全文
191 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
槑党--一缕风 2013-02-05
  • 打赏
  • 举报
回复
单行子查询返回多于一个行的结果,检查一下条件,
善若止水 2013-02-02
  • 打赏
  • 举报
回复
读不起,我上面说的错了,解决方法就是把‘=’换为 'in' 就行了。
善若止水 2013-02-02
  • 打赏
  • 举报
回复
select c.sub_dept_code from PRO_PLANT_ALL_ITEM c where c.tab_year = a.tab_year and c.tab_month = a.tab_month and c.id = a.id 你执行下,看看返回值是几个? 因为你用了‘b.sub_dept_code=’,如果上面的查询结果返回的行数大于一,就是问题的原因。 解决方法就是把‘=’换为‘—’就行了。
陈字文 2013-02-02
  • 打赏
  • 举报
回复
典型的 TOO_MANY_ROWS 异常. google it
laokang426 2013-02-02
  • 打赏
  • 举报
回复
对啊,这个业务只有你自己知道,不是给你提示了?单行子查询返回多于一个行,条件检查下, 如果条件正确那么就是错误数据造成的了。
  • 打赏
  • 举报
回复
try select c.sub_dept_code => select top 1 c.sub_dept_code

3,499

社区成员

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

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