【问题标题】:view with the tables from multiple user schema查看来自多个用户模式的表
【发布时间】:2010-01-13 19:23:26
【问题描述】:

我有一个基于来自不同用户架构的多个表的视图。凭借当前登录的用户,他能够从不同的模式中看到表。创建视图时,表名变得不明确,因为用户可以从不同的模式访问相同的表。 有没有办法在创建视图时指定使用当前用户模式中的表? 我们可以为视图定义中的一个表执行此操作,而可以从任何模式中选择其他表吗?

【问题讨论】:

    标签: oracle view database-schema


    【解决方案1】:

    "当视图创建时表 名称随着用户变得模棱两可 可以访问相同的表 不同的架构”

    这对 Oracle 来说并不含糊。

    视图存在于架构 SCHEMA_1 中。如果该视图引用对象 TABLE_A,Oracle 将首先在 SCHEMA_1 中查找对象 TABLE_A。如果它找到一个表,它将使用它。如果它找到同义词,它将使用同义词指向的任何内容。如果 SCHEMA_1 中没有任何内容,它将查找 TABLE_A 的 PUBLIC SYNONYM 并使用它指向的任何内容。

    SYNONYMS 可以指向其他同义词、视图或表。

    您可以查询 USER_DEPENDENCIES 以查看视图实际基于哪些对象。

    如果从 SCHEMA_2 查询,您不能在 SCHEMA_1 中拥有使用 SCHEMA_2 中的 TABLE_A,但如果从 SCHEMA_3 查询,则在 SCHEMA_3 中使用不同的 TABLE_A 的视图。

    【讨论】:

      【解决方案2】:

      您应该能够通过为架构名称添加前缀来访问架构(具有正确的权限)。

      schemaname.tablename
      

      希望我正确理解了您的问题。

      【讨论】:

        猜你喜欢
        • 2017-08-21
        • 2021-07-18
        • 1970-01-01
        • 2013-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-12
        • 1970-01-01
        相关资源
        最近更新 更多