Oracle DBLINK创建和使用

当需要跨越本地数据库,访问远程数据库的数据时,oracle提供了dblink的方式,让我们可以很方便访问远程数据库像本地一样方便,我们下面来看看创建dblink的方法。

参考方案一

步骤一:首先查询当前用户是否有创建dblink的权限,如果没有,需要赋权

select * from user_sys_privs t where t.privilege like upper('%link%');

在这里插入图片描述
命令查询,从结果上看到当前用户有创建权限
命令说明:
CREATE DATABASE LINK:所创建的dblink只能是创建者能使用,别的用户使用不了
CREATE PUBLIC DATABASE LINK:public表示所创建的dblink所有用户都可以使用
赋权需要在sys下执行:

grant create public database link,create database link to myAccount;

步骤二:使用如下sql进行创建

在这里插入图片描述

create database  link HSDblink1 connect to SBD_CXTJ identified by huawei123 using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.101.5)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = search)))';
  • TestDblink : 表示dblink名字
  • dbName :表示 远程数据库的用户
  • dbPassword:表示 远程数据库的密码
  • HOST : 表示远程数据库IP
  • PORT : 表示远程数据库端口
  • SERVICE_NAME : 远程数据库的实例名

步骤三:远程数据库的SERVICE_NAME可以在远程数据库的sys用户下进行查询

select name,value from v$parameter where name='service_names'

在这里插入图片描述

步骤四:使用dblink访问远程的数据库,查询就和本地一样了

---teacher为表名,HSDBLINK1为创建的dblink名称
select * from teacher@HSDBLINK1;

在这里插入图片描述

-------------------------------------华丽分割线-------------------------------------

参考方案二

1.判断用户是否具备创建database link 的权限

一:查看当前登录用户(如果查询有返回行,则表示具备创建权限,否则,需要创建权限)
select * from user_sys_privs where privilege like upper('%LINK%');
二:查询某个用户test(如果查询有返回行,则表示具备创建权限,否则,需要创建权限)
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='TEST';

2.给test用户授权创建删除dblink权限

grant create public database link,drop public database link to test;

3.创建database link

方法一:PLSql工具创建
在这里插入图片描述
鼠标右键》新建
在这里插入图片描述
方法二:命令语句

create public database link TESTLINK connect to TEST identified by TEST USING 'ORCL数据库地址(比如 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=test)))'

4.查询验证

   select * from 表名@TESTLINK;

查看DBLINK

select owner,object_name from dba_objects where object_type='DATABASE LINK';

在这里插入图片描述

删除dblink

//seq:(dblinkname)
drop public database link seq;

https://www.csdn.net/tags/MtzaIg1sNDk4MDUtYmxvZwO0O0OO0O0O.html
https://www.cnblogs.com/xianshen/p/15594482.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值