我正在尝试使用服务器 B 上的本地表在服务器 A(通过 dblink)上执行合并到远程表中。源数据库和目标数据库都在 Oracle 10.2.0.3 上。
我们已经有一个类似的现有合并工作正常(但查询在服务器 A 上运行并合并到服务器 B 上的表中),所以我对可能导致问题的原因感到有些困惑。
我已将案例简化为最简单的情况 - 具有相同的表并使用本地表的全部内容进行合并,但合并仍然失败,ORA-02064“不支持分布式操作”:
MERGE INTO attendance@dblnk tgt
USING (
SELECT *
FROM attendance
-- WHERE TRUNC(in_date) = TO_DATE('01.09.2013', 'DD.MM.YYYY')
) src
ON (tgt.emp_no = src.emp_no AND tgt.in_date = src.in_date)
WHEN NOT MATCHED THEN
INSERT (emp_no, in_date, out_date)
VALUES (src.emp_no, src.in_date, src.out_date)
知道我接下来应该检查什么吗?提前谢谢了
这是一个错误。(错误号 4311273)。
... 在 Oracle 10.2.0.4 中已修复。升级您的数据库软件。