日期:2014-05-16  浏览次数:20442 次

oracle中dblink的创建方法
如果需要从一个数据库服务器访问另外一个数据库服务器的表或视图时,可以通过 DBLink 的方法,实现基本等同于本机访问的效果,如下:
SELECT * FROM A@DBLINK_B ;
创建DBLink的方法有以下两种:

第一、已经在需要访问的服务器上创建好了被访问服务器的服务名:
create database link test
   connect to username identified by pwd
   using ’server_name’;
前提是我们已经建好了名为    ’server_name’ 的服务名。
然后可以用以下的方法访问了:
SELECT * FROM A@TEST;

第二、还没有建好服务名时,可以用以下的方法:
create database link test
connect to username identified by pwd
using ’(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
   (SERVICE_NAME = ora8)
)
)’;
host=数据库的ip地址,service_name=数据库的ssid。
其实两种方法配置dblink是差不多的,我个人感觉还是第二种方法比较好,这样不受本地服务的影响。

数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.

数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样

数据库全局名称可以用以下命令查出
SELECT * FROM GLOBAL_NAME;

查询远端数据库里的表
SELECT …… FROM 表名@数据库链接名;
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。
附带说下同义词创建:

CREATE SYNONYM同义词名FOR 表名;
CREATE SYNONYM同义词名FOR 表名@数据库链接名;

删除dblink:DROP PUBLIC DATABASE LINK linkfwq。

如果创建全局dblink,必须使用systm或sys用户,在database前加public。


原文地址:http://hi.baidu.com/hfq622226/blog/item/54b796e981d67f37b90e2dec.html