我编写了简单的更新查询,如下所示
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_name'
相同的TABLE和MATERIALIZED VIEW我知道物化视图无法更新,但表格应该更新
请让我知道如何使用简单的上述更新查询更新表
答案 0 :(得分:0)
您无法更新实体化视图或physical table it uses for storage。您只能更新构建视图的表。大概你知道那些;如果没有,您可以从数据字典或dbms_metadata.get_ddl
获取视图定义。
无论如何,更新视图或它的支持表都没有意义。即使您被允许,在下次刷新视图时,您所做的任何更改都将丢失。
如果您不希望再次刷新实体化视图,那么您可以drop that使用preserve table
选项,这将只留下物理表 - 然后您更新它。但是如果你改变主意,你必须重新创建视图并指定现有的表格。