update table1
set table1.col1=(select t2.c2 as X from t2@dblink)
where t1.c2=(select t3.c3,t3.c4,t3.c5 from t3@dblink)
但我正在
ORA-01427:单行子查询返回多行
有人可以帮我解决这个问题。
答案 0 :(得分:0)
正如您所说,样本数据会有所帮助,并且会发布一致的信息(您正在更新TABLE1,之后使用T1,这是什么?)。
无论如何,这样的事情可能会给你一个想法:
update table1 t1 set
t1.c1 = (select t2.c2
from t2@dblink t2
where t2.some_column = t1.some_column --> you miss this
)
where t1.cs in (select t3.c3 from t3@dblink union
select t3.c4 from t3@dblink union
select t3.c5 from t3@dblink
);
答案 1 :(得分:0)
问题:
您的子查询将返回多个记录,并且您正在使用单个值检查是否相等。
value1 <> {v2,v3,v4,v5,....}
您需要使用in子句(如果您打算将t1,cs与t2上的多列进行比较,请使用并集)