当需要跨越本地数据库,访问远程数据库的数据时,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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐