1 回答
TA贡献1848条经验 获得超10个赞
通过database links的方法具体如下:
假设DB1、DB2两个数据库,现在要在DB1中使用DB2的表,那么在DB1数据库中创建db link的命令如下:
一、创建database link
-- Create database link
create database link db_1
connect to db_2_user identified by "db_2_user_password"
using 'DEMO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = db_2_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = db_2_server)
)
)';
其中,
db_1是db link的名称;
db_2_user是DB2这台机器上源数据库的用户名;
db_2_user_password是密码;
db_2_ip是DB2数据库地址,
db_2_server是DB2数据库服务名。
这样就可以,如果要访问B数据库的test表,可以“表名@数据链接名”这样用,如:
select * from test@db_1;
二、使用
注意点:如果在DB1的oracle clinet上通过database links访问DB2的表,需要在DB1的服务器的tnsnames正确指向DB2。假设DB_LINK是想从DB1连接到DB2,需要配置DB1机器上的tnsnames正确指向DB2。如果确认DB1上的tnsnames中配置正确;那么再确认正确的tnsnames被使用了,也就是说DB1机器上系统的环境变量指向哪个oracle的bin目录,使用的是不是配置正确的那个tnsnames文件。两个tnsnames正确配置完成后就可以使用了。
添加回答
举报