【转】创建DBLINK的两种方法

创建DBLINK 有两种方法

一 : 动态DB LINK

-- Create database link
create public database link MYLINK2
connect to USERID
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = DB2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = DS2)
)
)';

说是动态并不是真正动态的,只是这种方式可以随时建立,适合程序临时使用.


二: SERVER TO SERVER DB-LINK

-- Create database link
create public database link MYLINK
connect to USERID
using 'DB2.TNSNAME';

该方法需要在当前的SERVER上建立名为 'DB2.TNSNAME' 的TNS .
注意是在SERVER上建TNS,不是CLIENT. 很多人建了DB-LINK 就会报错
ORA-12154 ,就是这个原因.


建好后可以访问远端数据DB2.

select * from TABLE1@MYLINK2 where comFORT='1'


也可以继续建立synonym (同义词)

-- Create the synonym
create or replace public synonym r_db2
for sys.table1@MYLINK2;


那么就可以用

select * from r_db2 where comFORT='1'

代替刚才的查询.

----------------------------------------------------------------------------
同一台数据库服务器上两个不同的数据库可以通过共享来实现数据共享。两台不同的数据库服务器无法通过这种方法来实现数据共享,这个时候可以使用database links 。创建全局database links ,则必须使用systm或sys用户,在database前加public
1.两种方式创建
1.1 已经配置本地服务
CREATE DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING '本地配置的数据的实例名' ;
1.2 未配置本地服务

create database link linkfwq
connect to fzept identified by neu
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = fjept)
)
)';

两种方法配置dblink是差不多的,第二种方法不受本地配置的数据的实例名的影响。
2 查询远程数据库的数据
SELECT …… FROM 表名@数据库链接名;
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值