Oracle中dblink简单介绍

什么是dblink
dbLink是简称,全称是databaselink,翻译过来就是数据库链接的意思。那么这个dblink的作用是什么呢。它主要是用来做跨库访问的。比如说我现在有一个A数据库,还有一个B数据库,那我我现在想在A库中访问B数据库中的数据。那么我们怎么做。我们就可以在A库中创建一个dblink来链接到B数据库。这样我们在A数据库中就可以直接对B中的数据进行查询,访问,修改。

创建dblink的语法如下:

CREATE PUBLIC DATABASE LINK db_link_name CONNECT TO username IDENTIFIED BY password USING '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =visist_IP)(PORT =visit_port ))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = db_name)
    )
  )';
  --参数说明
  --username 需要访问数据用户名, password  密码, visit_ip  需要访问数据库的ip,visit_port 窗口, db_name数据库名称
1
2
3
4
5
6
7
8
9
10
如何创建dblink
我们可以按照上述语法,可以先把创建dblink的SQL脚本写好。比如说我现在本机Oracle数据库上有两个库(也可以说两个用户)。分别是test1,test2。密码和用户名一致。

注意,Oracle数据库中一个用户表示一个数据库。和Mysql有一点区别。Mysql是一个root用户,创建连接,然后登录成功后就是自己建数据库的名称。

Oracle数据库,需要先创建一个用户,给这个用户授予相对应的权限。用户创建成功后,登录这个用户,然后进行创建表或其他的一些操作。

现在我想在test1库中创建一个链接test2库的dblink。那么执行脚本就如下:

CREATE PUBLIC DATABASE LINK db_link_test2 CONNECT TO test2 IDENTIFIED BY test2 USING '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT =1521 ))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )';
1
2
3
4
5
6
7
8
比如说我们现在test1库里面有一张user表,test2库里面有一张school表。我们想在test1库中执行查询,查到这个school表中的数据。那么我们的sql语句应该怎么写呢?

select t.* from school@db_link_test2 t;
1
这个语句就可以在test1数据库中查出来test2数据库中的school中的数据。school@db_link_test2 是‘表名’@’数据库链接名’

有创建dblink的方法,当然就有删除dblink的方法,当我们不需要dblink的时候。我们执行下列Sql即可对dblink进行删除。

drop public database link  db_link_test2;
1
注意一下,我们想要创建dblink前提是该用户有创建dblink的权限。如果没有权限是创建不了dblink的。那么我们只需要给该用户授予相应的权限即可。

grant create public database link to test1;
1
总结
dblink使用起来还是很方便的。那么我们一般在什么场景下使用dblink等。首先肯定是得有两个数据库的。一般这种情况是涉及到两个系统的对接和交互。这个两个系统都有自己的数据库,他们之间要实现信息的交互,访问。那么我们就可以创建一个dblink来进行访问。
————————————————
版权声明:本文为CSDN博主「lamdaxu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45119323/article/details/120103349

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值