插入视图

时间:2014-10-01 08:57:14

标签: plsql oracle11g

在Oracle中,我使用'union all'创建一个视图,如下所示

create view TESTVIEW as 
select column1 from TABLE1 
union all 
select column1 from TABLE2;

如果我想插入此视图,我会得到

SQL错误:ORA-01732:此视图上的数据操作操作不合法

如果我知道我想在TABLE1中插入,有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:1)

是的,您应该能够在视图上创建 INSTEAD OF INSERT 触发器。

您需要编写触发器以在基表中插入行,并且它将运行"而不是"原始插入。

答案 1 :(得分:0)

请参阅http://docs.oracle.com/cd/E17952_01/refman-5.1-en/view-updatability.html以了解哪些视图可直接更新。对于不能直接更新的视图,请使用"而不是"按照上述帖子的建议触发。