有没有人有10g到11g之间数据库链接的经验?
这是受支持的设置/操作吗?可能吗?有什么问题吗?警告?
答案 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(+);