使用Oracle10g合并两个表时出错?

Nav*_*iam 3 sql oracle

我正在使用oracle 10g.我试图合并两个表.那时我得到以下错误... ora-30926无法在源表中获得稳定的行集.

以下是我的查询

merge into mt_test_dest t
using (select distinct d.dest_id dest_id,
                       d.c_id,
                       nvl(tt.destination, tt.destination) destination
         from my_dest_extra d
         join mt_test_dest tt
           on d.c_id = tt.dest_cid
         join my_dest dml
           on dml.dest_id = d.dest_id
        where tt.effectivedate <> to_date('12-12-2999', 'dd-mm-yyyy')) src
on (t.dest_cid = src.c_id)
when matched then
  update set t.dest_id = src.dest_id, t.destination = src.destination;
Run Code Online (Sandbox Code Playgroud)

有人可以在这个问题上帮助我吗?

Cod*_*odo 5

导致错误的最可能原因是源查询包含多个具有相同行的行C_ID.如果发生这种情况,您有两行或更多行竞争更新目标表中的相同数据(因为此列用作唯一的连接条件).Oracle检测到此情况并抛出ORA-30926错误.