ORA-38106:使用INSTEAD OF触发器在连接视图或视图上不支持MERGE

时间:2014-03-22 12:35:02

标签: sql oracle select merge

如何合并到包含多个表的视图中。 我的问题是,只有当子表,父表连接时,我才能确定要合并的匹配条件,而且只能用单个表我不能。

我正在获取ORA-38106:在使用INSTEAD OF触发器的连接视图或视图中不支持MERGE

create table t (id number, c varchar2(10));
create table p (p_id number, id number);

merge into (select t.c, p.p_id from t, p  where t.id = p.id) t 
     using (select 1 id from dual) d 
        ON (t.p_id = d.id) 
      when matched then update set c = 'iii';

1 个答案:

答案 0 :(得分:2)

将逻辑移至using查询。我认为这符合你的意图:

merge into t t 
     using (select p_id from p where p_id = 1) d 
        ON (t.p_id = d.p_id) 
      when matched then update set c = 'iii';