12c使用DBLINK连接9i报ORA-03134

来源:这里教程网 时间:2026-03-03 16:29:27 作者:
一、问题描述
当12c数据库使用dblink连接9I数据库时,会出现ORA-03134:Connections to this server version are no longer supported.的报错。

二、问题原因
9I版本过于老旧,已被oracle无情抛弃了。

三、可行的解决办法(使用一个11g的中间库做跳转,不推荐使用,因为会有ORA-19706:invalid SCN的风险)
1. 12c使用dblink连接9i案例
--01.在9i创建测试表
create table t1(c1 number,c2 number) tablespace users;
insert into t1 values(102,7000);
insert into t1 values(101,9000);
commit;
--02.在11g中间库创建连接9i的dblink
create database link orcl9i connect to u1 identified by u1 using '(DESCRIPTION=(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST=<9i-Host-Name)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORC9208U)))';
--03.在11g中间库创建视图
create view t1 as select * from select * from t1@orcl9i;
--04.在12c创建连接11g的dblink
create database link orcl11g connect to u1 identified by u1 using '(DESCRIPTION=(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST=<11g-HostName)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))';
--05.在12上使用dblink连接到11g进行查询
select * from t1@orcl11g;

2. 9i使用dblink连接12c案例

--01.在12c创建测试表
create table t2(c1 number,c2 number) tablespace users;
insert into t2 values(102,7000);
insert into t2 values(101,9000);
commit;
--02.在11g中间库创建连接12c的dblink
create database link orcl12c connect to u1 identified by u1 using '(DESCRIPTION=(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST=<12c-Host-Name)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl.us.oracle.com)))';
--03.在11g中间库创建视图
create view t2 as select * from t2@orcl12c;
--04.在9i创建连接11g的dblink
create public database link orcl11g connect to u1 identified by "u1" using 'orcl11';
--05.在9i上使用dblink连接到11g进行查询
select * from t2@orcl11g

四、参考文章
Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)
Connecting 12c Db to 9i Db and vis-versa using db-link (Doc ID 2320287.1)

相关推荐