【发布时间】:2016-06-02 17:12:28
【问题描述】:
我写了如下简单的更新查询
update table_name set name = 'new name
这给了我错误
SQL Error: ORA-01732: data manipulation operation not legal on this view 01732. 00000 - "data manipulation operation not legal on this view"
然后我检查
select * FROM USER_OBJECTS WHERE OBJECT_NAME='table_name'
那个列表 TABLE 和 MATERIALIZED VIEW 与 'table_name' 相同
我知道物化视图无法更新,但表应该更新
请告诉我如何使用上面的简单更新查询更新表格
【问题讨论】:
-
更改他们的名字之一
-
@sagi 感谢您的反馈。是否可以在不更改任何对象名称的情况下进行更新?
-
两个表是否在同一个模式中?我不确定它是否可能.. 如果没有,请使用 schema.TableName 或 schema.ViewName
-
你也可以在这里阅读:stackoverflow.com/questions/33552237/…
-
@sagi - 由于 MV 由物理表支持,并且它们都可以/确实具有相同的名称(如您链接到的那样),因此更改其中一个不是一个好主意,也不会帮助。必须更新 MV 的基表,而不是 MV 或其后备表。
标签: sql oracle sql-update