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

oracle DB-LINK 使用

最近对oracle使用比较频繁,在多个服务器之间操作数据库时候使用到了DB_LINK和sysnonym(同义词),觉得有必要做个笔记同时与大家分享下:

??? 情景假设:

????????? 1.有服务器A、B两台,分别安装了oracle10g服务器;

??????????2.客户端笔记本1台C安装oracle服务端,3台机器在同一网络;

????????? 3.A服务器上用户testa/password有A01商品类别表(类别编号,类别名称),B服务器上testb/password有B01商品信息表(商品编号,商品名????????? 称,类别编号,……);

????????? 4.现在要查询所有商品的商品名称、类别名称。

???? 实现功能:

??????????? 首先,我们需要2台不同服务器上的数据,就需要在DBMS层建立起链路,即DB-link。建立dblink的前提是两台服务器可以连通,我们可以在服务器A上通过oracle自带的net manager?(配置和移植工具下)工具配置oracle连接:网络服务名填写 ‘orcl_linkB’?其他按提示填写;

??????????? 然后,选择在A服务器上实现远程访问到B服务器上读取商品信息表的数据,则需要创建DB_link,代码如下:

??????????? create database link?dblinkname

??????????? connect to?testb identified by password

??????????? using 'orcl_linkB';
??????????? 配置完成!

?????使用db_link完成情景假设中的任务:

???????????? 1.在A服务器上以用户testa/password登陆

?????????????2.代码如下:

??????????????? select 商品信息表.商品名称,商品类别表.类别名称?????

??????????????? from?testb.商品信息表@dblinkname,商品类别表

??????????????? where 商品类别表.类别编号=testb.商品信息表.类别编号@dblinkname;

?????????? ??????????