当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍我之前项目中如何在本地数据库中创建dblink。
本地数据库建立数据库链接"DBLINK_OUT"
CREATE DATABASE LINK "DBLINK_OUT"
CONNECT TO "REMOTE_DB" IDENTIFIED BY VALUES "REMOTE_DB_PASS"
USING "(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XX.XX.XX.43)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)"
远程数据库建立数据库链接"DBLINK_IN"
CREATE DATABASE LINK "DBLINK_IN"
CONNECT TO "LOCAL_DB" IDENTIFIED BY VALUES "LOCAL_DB_PASS"
USING "(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XX.XX.XX.142)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)"
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。
例如:如果想在本地数据库中通过dblink访问远程数据库"orcl"中REMOTE_DB.tb_test表,sql语句如下所示:
select * from REMOTE_DB.tb_test@DBLINK_OUT;
DBLINK其他相关的知识:
查看所有的数据库链接,登录管理员查看
select owner,object_name from dba_objects where object_type="DATABASE LINK";
删除数据库连接
drop database link DBLINK_OUT;