代码之家  ›  专栏  ›  技术社区  ›  lamcro

如何允许在Oracle中更新视图的结果?

  •  0
  • lamcro  · 技术社区  · 16 年前

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

    是否可以启用Oracle视图带来的数据更改?

    改写: 如果我只查看一个表,只是为了隐藏一些列,是否会在表上更新对此数据的更改?

    3 回复  |  直到 12 年前
        1
  •  7
  •   Peter Lang    12 年前

    是的,可以修改Oracle视图。

    但也有一些限制:

        2
  •  1
  •   cagcowboy    16 年前

    我不相信默认情况下Oracle视图是只读的…如果单个表视图不包含多行操作(如DISTINCT或GROUPBY),则该视图应可更新。该用户必须已被授予更新视图权限。

    删除了列的简单视图绝对应该是可更新的,前提是您有权更新该视图…

    GRANT UPDATE ON your_view_name TO your_user;
    

    尝试运行UPDATE语句时会出现什么错误?

        3
  •  0
  •   Ian Carpenter    16 年前

    在Oracle中,视图不包含自己的基础数据。因此,如果您的视图允许更新,那么底层表将被更新。

    如果您需要更多信息,请参阅《Oracle概念指南》中的“视图”部分。

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/schema.htm#sthref787

    更多信息也可以在“create view”sql命令中找到。

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_8004.htm#SQLRF01504

    希望这有帮助

    当做