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

Posted

技术标签:

【中文标题】无法在源表中获得一组稳定的行?【英文标题】:Unable to get a stable set of rows in the source tables? 【发布时间】:2015-06-27 06:54:12 【问题描述】:

当我使用合并语句时,我得到了错误。

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);

能指出我的错误吗?

【问题讨论】:

有问题的两个对象是什么?这些名称暗示它们可能是远程对象的同义词?这些是完全独立的永久表吗? 这是两个单独的表。 这个问题可能重复:***.com/questions/2337271/… 和这个:***.com/questions/28636860/… 和这个:***.com/questions/24936612/ora-30926-merge-state 和这个:***.com/questions/21935340/… 等等。 【参考方案1】:

这种错误通常发生在查询中有重复项时,也就是说 using 子句中的查询返回超过 1 行的连接条件在 on 子句中。 我不知道你的数据,但这是一个不错的猜测。

【讨论】:

以上是关于无法在源表中获得一组稳定的行?的主要内容,如果未能解决你的问题,请参考以下文章

合并给出错误 ORA-30926: 无法在源表中获得一组稳定的行

合并语句问题 - 错误无法在源表中获得一组稳定的行

oracle 中报ora-30926 无法在源表中获得稳定的行 是怎么回事

oracle 中报ora-30926 无法在源表中获得稳定的行 是怎么回事

合并更新 oracle 无法获得一组稳定的行

Oracle PL/SQL 程序在源表中拆分逗号分隔的数据并推送到目标表中