【问题标题】:How to permit update of a view's results in Oracle?如何允许在 Oracle 中更新视图的结果?
【发布时间】:2010-10-20 07:29:58
【问题描述】:

我了解数据库视图是只读的,或者默认情况下至少是只读的。

是否可以启用oracle视图带来的数据变化?

改写:如果我只查看一个表,只是为了隐藏一些列,那么对表中的数据所做的更改会更新吗?

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    是的,可以修改 Oracle 视图。

    但是,有一些限制:

    【讨论】:

      【解决方案2】:

      在 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

      希望对你有帮助

      问候

      【讨论】:

        【解决方案3】:

        我不相信默认情况下 Oracle 视图是只读的...如果单个表视图不包含 DISTINCT 或 GROUP BY 等多行操作,则它应该是可更新的。相关用户必须已被授予 UPDATE VIEW 权限。

        如果您有更新相关视图的权限,则删除列的简单视图绝对应该是可更新的...

        GRANT UPDATE ON your_view_name TO your_user;
        

        当您尝试运行 UPDATE 语句时遇到什么错误?

        【讨论】:

        • 对不起,这个问题来自我的一个朋友。他正在上 DB 的大学课程。我告诉他加入这个网站,这样他就可以得到帮助。
        猜你喜欢
        • 1970-01-01
        • 2014-07-06
        • 2022-10-04
        • 1970-01-01
        • 2011-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多