首先创建数据库链接:
CREATE PUBLIC DATABASE LINK 数据链名称 CONNECT TO 登陆用户名 IDENTIFIED BY 密码 USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 对方Oracle服务器的IP地址)(PORT = 端口号))
)
(CONNECT_DATA =
(SERVICE_NAME = 对方Oracle服务器服务名)
)
)'
其中 数据链名称 为添加到本地Oracle数据库控制台(Oracle Enterprise Manager Console)树节点的服务名
--要查询对方数据库的表TableName语句如下:
SELECT 字段名 FROM TableName@数据链名称;
--复制表数据:
insert into 表名(字段名) (SELECT 字段名 FROM TableName@数据链名称);
SELECT 字段名 FROM TableName@数据链名称;
--复制表数据:
insert into 表名(字段名) (SELECT 字段名 FROM TableName@数据链名称);
实例:服务器10.10.0.68查看10.10.1.172库ORCL用户NC0412的数据
方一:
--创建DBLink test0412
CREATE PUBLIC DATABASE LINK test0412 CONNECT TO nc0412 IDENTIFIED BY nc0412 USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.1.172)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)'
CREATE PUBLIC DATABASE LINK test0412 CONNECT TO nc0412 IDENTIFIED BY nc0412 USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.1.172)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)'
方二
1.备份文件

2.配置0.68服务器端的tnsnames.ora文件,该文件存放的位置为$ORACLE_HOME/network/admin/tnsnames.ora,需要在该文件中增加对1.172库的配置项,格式
如下 :
orcl172 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.1.172)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
3..在0.68服务器的一个库中建立1.172的一个数据的DBLINK(1.172中有一个用户0412)。语法如下:
create database link TEST0412 connect to nc0412 identified by nc0412 using 'orcl172';
4.然后可以实现分布式查询:
select * from tabname@test0412 where 1=1;
可查询当前所有的dblink

浙公网安备 33010602011771号