Sql 对于此错误,什么是好的解决方法?ORA-30926:无法在源表中获取一组稳定的行
我目前正在尝试从本地数据库的“temp”表(interchange_data)运行合并,以便通过数据库链接将数据发送到“clone”表。运行合并时,我收到以下错误: ORA-30926:无法在源表中获得一组稳定的行 我知道这可能是因为我有重复的记录(根据我读到的内容),但我不确定如何在没有明确的行id的情况下删除重复的记录。我试着在其中添加一个明确的行id,看看这是否有帮助。如有任何建议/一般指示,将不胜感激。下面是我的合并代码:Sql 对于此错误,什么是好的解决方法?ORA-30926:无法在源表中获取一组稳定的行,sql,oracle,Sql,Oracle,我目前正在尝试从本地数据库的“temp”表(interchange_data)运行合并,以便通过数据库链接将数据发送到“clone”表。运行合并时,我收到以下错误: ORA-30926:无法在源表中获得一组稳定的行 我知道这可能是因为我有重复的记录(根据我读到的内容),但我不确定如何在没有明确的行id的情况下删除重复的记录。我试着在其中添加一个明确的行id,看看这是否有帮助。如有任何建议/一般指示,将不胜感激。下面是我的合并代码: MERGE INTO db1.IN_DATA@ora Y USI
MERGE INTO db1.IN_DATA@ora Y
USING
(SELECT DISTINCT FROM,
TO,
"DATE_",
TIMESTAMP_,
VAL,
LOCAL_TIMESTAMP,
LAST_UPDATE
FROM IN_DATA
) X ON (
Y.FROM = X.FROM
AND Y.TO = X.TO
AND Y.TIMESTAMP_ = X.TIMESTAMP_)
WHEN MATCHED THEN
UPDATE
SET Y.VAL = X.VAL,
Y.LOCAL_TIMESTAMP = X.LOCAL_TIMESTAMP
WHEN NOT MATCHED THEN
INSERT
(
FROM,
TO,
DATE_,
TIMESTAMP_,
VAL,
LOCAL_TIMESTAMP,
LAST_UPDATE)
VALUES
(X.FROM,
X.TO,
X.DATE_,
X.TIMESTAMP_,
X.VAL,
X.LOCAL_TIMESTAMP,
X.LAST_UPDATE);
由于选择的列多于仅用于匹配的列,DISTINCT子句不能保证匹配将产生唯一的匹配列
尝试在表
“in_DATA”
中的列“FROM”
、“to”
和“TIMESTAMP”
上定义唯一索引或唯一约束,如果还没有这样的索引或约束或主键。不是此问题的解决方案,但看起来您希望同步远程表。您可以尝试在目标中使用实体化视图。完成,抱歉。当我最初发布该标题时,UI不允许我在表中使用该标题(出于某些奇怪的原因)。ALTER table table\u name ADD CONSTRAINT\u name UNIQUE(column1,column2,…column)代码>