【发布时间】:2010-10-20 07:29:58
【问题描述】:
我了解数据库视图是只读的,或者默认情况下至少是只读的。
是否可以启用oracle视图带来的数据变化?
改写:如果我只查看一个表,只是为了隐藏一些列,那么对表中的数据所做的更改会更新吗?
【问题讨论】:
我了解数据库视图是只读的,或者默认情况下至少是只读的。
是否可以启用oracle视图带来的数据变化?
改写:如果我只查看一个表,只是为了隐藏一些列,那么对表中的数据所做的更改会更新吗?
【问题讨论】:
是的,可以修改 Oracle 视图。
但是,有一些限制:
【讨论】:
在 oracle 中,视图不包含它自己的基础数据。因此,如果您的视图允许更新,则基础表将被更新。
如果您需要更多信息,值得查看 Oracle 概念指南中的“视图”部分。
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/schema.htm#sthref787
更多信息也可以在“创建视图”sql命令中找到。
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_8004.htm#SQLRF01504
希望对你有帮助
问候
【讨论】:
我不相信默认情况下 Oracle 视图是只读的...如果单个表视图不包含 DISTINCT 或 GROUP BY 等多行操作,则它应该是可更新的。相关用户必须已被授予 UPDATE VIEW 权限。
如果您有更新相关视图的权限,则删除列的简单视图绝对应该是可更新的...
GRANT UPDATE ON your_view_name TO your_user;
当您尝试运行 UPDATE 语句时遇到什么错误?
【讨论】: