2

我正在使用 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 -“此视图上的数据操作操作不合法”
*原因:
*操作:

我的物化视图已禁用查询重写。

我不明白为什么它试图插入视图为什么它没有写入表?如何在表格中插入一行?

4

1 回答 1

3

只有物化视图的一个子集可以直接修改,为了这样做,它们必须遵守文档中规定的 strist 规则:http: //docs.oracle.com/cd/B19306_01/server.102/b14226/repmview .htm

如果您的 MV 定义满足这些限制并且仍然不可修改,则发布 MV 的定义以及它引用的所有表的完整定义,包括约束。

于 2013-09-01T18:34:48.933 回答