Oracle 无法在源表中获取一组稳定的行?

Oracle 无法在源表中获取一组稳定的行?,oracle,merge-statement,Oracle,Merge Statement,当我使用merge语句时,我得到了一个错误 Error code 30926, SQL state 99999: ORA-30926: unable to get a stable set of rows in the source tables 我的问题是: merge into dept_fc_link l using (select distinct dept_id,f_id,stk_point from temp_dept_fc_link) t on (l.dept_id = t

当我使用merge语句时,我得到了一个错误

Error code 30926, SQL state 99999: ORA-30926: unable to get a stable set of rows in the source tables
我的问题是:

merge into dept_fc_link l 
using 
(select distinct dept_id,f_id,stk_point from temp_dept_fc_link) t 
on (l.dept_id = t.dept_id) 
when matched then 
update set l.stk_point = t.stk_point 
when not matched then 
insert(l.dept_id,l.f_id,l.stk_point) values(t.dept_id,t.f_id,t.stk_point);

可以指出我的错误吗?

通常,当查询中存在重复项时,这种错误就会发生,换句话说,using子句中的查询会为on子句中的连接条件返回多行。
我不知道你的数据,但这是一个很好的猜测。

有问题的两个对象是什么?这些名称意味着它们可能是远程对象的同义词?这些是完全独立的永久表吗?这是两个独立的表。这个问题的可能重复:和这个:和这个:还有更多。