我正在使用 Oracle 10g 和 sql Developer 来编写查询。
我有一个用户ESTRADM
,它有一些表和一些物化 View 。我正在尝试向表 MTEP_THREEDS_CARD_MASTER
中插入一行,其各自的物化 View 是 MTEP_THREEDS_CARD_MASTER
(表和 View 具有相同的名称)。
现在当我执行查询时
insert into ESTRADM.MTEP_THREEDS_CARD_MASTER values (col1,col2,..);
它给了我一个错误:
Error report:
SQL Error: ORA-01732: data manipulation operation not legal on this view
01732. 00000 - "data manipulation operation not legal on this view"
*Cause:
*Action:
我的物化 View 已禁用查询重写。
我不明白为什么它试图插入 View ,为什么它不写入表? 如何在表中插入一行?
最佳答案
只有物化 View 的子集可以直接修改,为此它们必须遵守文档中规定的 strist 规则:http://docs.oracle.com/cd/B19306_01/server.102/b14226/repmview.htm
如果您的 MV 定义满足这些限制并且仍然不可修改,则发布 MV 的定义以及它引用的所有表的完整定义(包括约束)。
关于SQL错误: ORA-01732: data manipulation operation not legal on this view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18558298/