我正在使用oracle 10g和sql developer来编写查询。
我有一个用户ESTRADM
,它有一些表和一些物化视图。我试图在表MTEP_THREEDS_CARD_MASTER
中插入一行,其相应的物化视图为MTEP_THREEDS_CARD_MASTER
(表和视图具有相同的名称)。
现在我执行查询
insert into ESTRADM.MTEP_THREEDS_CARD_MASTER values (col1,col2,..);
它给了我一个错误:
错误报告:
SQL错误:ORA-01732:此视图上的数据操作操作不合法
01732. 00000 - “数据操作操作在此视图上不合法”
*原因:
*行动:
我的物化视图已禁用QUERY REWRITE。
我没有得到这个为什么它试图插入视图为什么它不写入表? 如何在表格中插入一行?
答案 0 :(得分:2)
只能直接修改实体化视图的子集,并且为了这样,他们必须遵守文档中列出的严格规则:http://docs.oracle.com/cd/B19306_01/server.102/b14226/repmview.htm
如果您的MV定义符合这些限制且仍然无法修改,则发布MV的定义以及它引用的所有表的完整定义(包括约束)。