SQL错误: ORA-01732: data manipulation operation not legal on this view

标签 sql oracle

我正在使用 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/

相关文章:

android - 在 Android 中使用准备好的语句进行查询?

java - 在select sql语句中将参数设置为null

python - 从 cx_oracle 游标检索时区感知日期时间对象的正确方法是什么?

C# ExecuteScalar() - 必须小于无穷大?

c# - Informix 内存泄漏

mysql - 存储所有用户的登录日期

sql - 从两个表中选择所有列 postgresql 函数

sql - 如何在 Oracle 中定义触发器 ON COMMIT?

sql - 如何使用 Oracle SQL 查找一个月的第一个星期四?

sql - varchar2(n BYTE | CHAR)默认-> CHAR或BYTE