Oracle数据库链接在10g和11g之间

时间:2010-03-19 00:32:19

标签: database oracle oracle10g oracle11g

有没有人有10g到11g之间数据库链接的经验?

这是受支持的设置/操作吗?可能吗?有什么问题吗?警告?

4 个答案:

答案 0 :(得分:5)

我一直在使用11g到10g的DB链接。没什么大问题。

唯一需要注意的是,11g可以使用大小写混合密码,如果您尝试从10g数据库连接到11g数据库,则可能需要将其关闭。

答案 1 :(得分:2)

无法再通过同义词(用于在Oracle 10中工作)从另一个模式访问选择列表中的dblink视图

视图

create or replace foo_view as
select foo.id@link id --yes, I know this is stupid... legacy code
from foo@link

在其他数据库用户

create synonym foo_synonym for otherdb.foo_view

选择foo_synonym:    “未找到远程数据库的ORA-02019连接描述”

解决方案是从基础视图的select子句中删除dblinks (首先不应该存在):

create or replace foo_view as
select foo.id id
from foo@lin foo

答案 2 :(得分:1)

当从11G到10.2.0.4的链接时,有时会出现问题。

Oracle支持文档ID 730423.1:使用Dqlink选择使用本地功能和远程表因Enq DX而挂起。

答案 3 :(得分:1)

如果11g中的外连接查询也使用IN或OR,并且表通过db_link引用到10g,也可以抛出ORA-01719。

11g到11g与10g到10g一样工作 - 如果你从11g到10g db_link就会出现。

具体来说,我目前正在使用11.2.0.1到10.2.0.3看到这个问题;和11.2.0.2到10.2.0.4。以及不同的O / S版本:Windows和Solaris。

在目标10g和11g数据库中运行:

create table u1 (c1 number);
create table u2 (c1 number, c2 number);
insert into u1 values (1);
insert into u1 values (2);
insert into u2 values (1,1);
insert into u2 values (1,2);
commit;

在11g链接数据库中创建db_links(DB10,DB11)到10g和11g链接数据库。

在11g链接数据库中运行这些查询:

/* this will fail 11g to 10g*/
SELECT *
FROM u1@DB10 a,
(SELECT *
FROM u2@DB10
WHERE c1 IN (1, 2, 3)) b
WHERE a.c1 = b.c1(+);

/* this will work 11g to 11g*/
SELECT *
FROM u1@DB11 a,
(SELECT *
FROM u2@DB11
WHERE c1 IN (1, 2, 3)) b
WHERE a.c1 = b.c1(+);