有时候数据库之间需要数据交互,但是我们的系统为了方便只配置一个数据源,此时要访问两个甚至三个以上数据库,改怎么办呢?创建DBLink,我们所开发的系统就可以只配置一个数据库连接,再为该数据库建立DBLink,这样,当我们连接一个数据库的时候,就可以同时操作DBLink的那个数据库。
我本人在接触DBLink之前一直有个疑问,就是DBLink到底是用来连接两个数据库的,还是连接两个用户?还是两者皆可?直到亲手创建完一个DBLink后,才恍然大悟:DBLink才不管你是要去链接哪个数据库或者哪个用户的表。DBLink只认你配置的是否正确,也就是你的用户和密码“STTE IDENTIFIED BY "000000" ” STTE 和密码“000000”是否能登录using '(DESCRIPTION = (ADDRESS_LIST ***** ' 。
下面是一条正确的创建语句:
“create database link MIDDB
connect to STTE IDENTIFIED BY "000000"
using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100 )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = MFHS) ) )';”
删除DBLink则用以下语句:
drop database link "MIDDB.REGRESS.RDBMS.DEV.US.ORACLE.COM";
使用示范:
SELECT * FROM TABLENAME_OF_EMSDBTEST@MIDDB
在每个表的后面加上“@MIDDB”则表名查询的是EMSDBTEST这个库里STTE用户下的表
下面用视图模式再创建一遍:
打开PL/SQL 工具,在左侧Objects窗口找到Database link 这个菜单,右键new 。
如图:
可以点击右下角的view按钮查看下生成的脚本。其实和上面的创建语句是一模一样的。
好了,简单的创建完成了。但是DBLink还有很多功能比如:共享之类的,本人也就不做搬运工了。下面的链接是一篇很好的文章,有兴趣深入了解的可以看一看。
地址:http://moonights.iteye.com/blog/568895