错误:ORA-01427: 单行子查询返回多于一个行,急~~~~

select(selectt.dydjfromwgkh_mx_infotwheret.dh=dy_rb_Res.Mxbh)intodydjfromdual;... select(select t.dydj from wgkh_mx_info t where t.dh = dy_rb_Res.Mxbh) into dydj from dual; 展开
 我来答
micro0369
2012-08-31 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:3995万
展开全部
你的返回值多余一行或者没有返回行的话,就不能用 into 的方式

可以用游标的方式:
declare cur_a cursor is
select(select t.dydj from wgkh_mx_info t where t.dh = dy_rb_Res.Mxbh) from dual;
begin
open cur_A;
FETCH CUR_A into dydj ;
loop
....

end loop;
close cur_a;
....
end

也可以取max的方式

select(select max(t.dydj) from wgkh_mx_info t where t.dh = dy_rb_Res.Mxbh) into dydj from dual;
追问
select(select t.dydj from wgkh_mx_info t where t.dh = dy_rb_Res.Mxbh) from dual;

为什么这样就报错呢?
追答
select(select t.dydj from wgkh_mx_info t where t.dh = dy_rb_Res.Mxbh) from dual;

这样应该不会报错吧?(好像在存储过程中不行,返回的值如何处理呢?)
lxr_303
2012-08-31 · TA获得超过473个赞
知道小有建树答主
回答量:875
采纳率:0%
帮助的人:512万
展开全部
dydj 你这个是记录类型吧,一次只能接收一个值,而你select t.dydj from wgkh_mx_info t where t.dh = dy_rb_Res.Mxbh这句查询出来了多个值,无法插入
追问
那怎么修改。我是新手,请教。
追答
看推荐答案就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式