如何在模式中创建FORCE EDITIONABLE VIEW,必须在Oracle中通过db_link检索数据?

时间:2018-01-25 09:13:50

标签: oracle11g

如何在架构中创建FORCE EDITIONABLE VIEW?必须通过Oracle中的db_link检索数据。

它不允许我创建FORCE EDITIONABLE VIEW,因此我创建了一个普通视图:

(CREATE OR REPLACE VIEW "schema"."view_name)

但它只检索少量记录。

1 个答案:

答案 0 :(得分:0)

Documentation表示EDITIONABLE是默认值。

版本提供了隔离机制,允许同一个对象拥有多个"实例"在同一个数据库中,但每个都是自己的"版本" (即 edition )与其他版本不同。

(我想像版本化,或者Smallworld GIS数据库&#39> 替代,如果您熟悉它的话)。

要使用版本,您必须为用户启用版本(使用ALTER USER命令);是你做的吗?请注意,它不可逆转。

此外,视图(或您的SELECT语句)WHERE子句是否可以限制行数,而不是EDITIONABLE参数?

<强> [编辑]

如果我理解正确,这就是正在发生的事情:

数据库链接指向另一个数据库中的用户(否则,您不会使用数据库链接,对吧?)。我们称之为LINK_USER。在该远程数据库上作为LINK_USER连接时,运行

select * from some_table where x = y

并获得100行。

然后,作为LOCAL_USER连接,您创建了一个DB链接和一个看起来与之前的SELECT完全相同的视图:

create database link link_db connect to link_user ...

create or replace view v_some_table as
  select * from some_table@link_db where x = y

最后,当您运行时(以LOCAL_USER身份连接)

select * from v_some_table
你不能获得100行但只有28行?那是对的吗?如果没有,请详细说明你做了什么以及如何做。复制/粘贴SQL * Plus会话会很不错。