<返回更多

ORACLE之DBLINK的使用

2019-12-04    
加入收藏

最近两天项目上线,跟着前辈学了不少东西,现在整理一下 。

DBLINK使用背景

因为项目是推广项目,是在一期项目上进行增加的功能,对数据的升级比较麻烦。我们的升级策略是先统计出项目中使用的配置表,使用Navicat Premium 12中的数据同步功能先将正式的数据和测试中的数据进行对比,提取出sql脚,其中有一些表是存有blob字段的,提取出来的脚本不能直接执行,所以用到下面的技术——databaseLink(即跨数据库操作数据)。

oracle在进行跨库访问时,可以通过创建dblink实现,可以通过dblink完成插入、修改、删除等操作。

测试环境

首先了解下环境:在tnsnames.ora中配置两个数据库别名:

orcl(用户名:wangyong 密码:1988)

orcl2(用户名:wangyong 密码:123456)

实现在orcl中创建database link来访问orcl2。

 

ORACLE之DBLINK的使用

 

 

 

 第一步:赋予权限

在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用wangyong用户登陆orcl):

-- 查看wangyong用户是否具备创建database link 权限

select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='WANGYONG';

如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为WANGYONG用户赋予创建权限

-- 给wangyong用户授予创建dblink的权限

grant create public database link to wangyong;

此时,再执行上面查看是否具备权限的sql语句,会发现有返回行,表示,WANGYONG这个用户已经具备创建database link的权限

 

 第二步;创建database link

创建方式有两种:1)通过pl/sql developer图形化创建、2)通过sqlplus中的sql语句创建,依次来看

1)pl/sql developer 图形化创建

 

ORACLE之DBLINK的使用

 

填写完成后点击“Apply”按钮即可创建成功。

2)sql语句创建

-- 注意一点,如果密码是数字开头,用“”括起来

create public database link TESTLINK2 connect to WANGYONG identified by "123456" USING 'ORCL2'

这样,就完成了简单database简单的创建。

 

 第三步:操作

首先,我们需要在ORCL2库中新建一张表,并插入部分数据,如下图:

 

ORACLE之DBLINK的使用

 

现在,我们通过database link 在orcl中访问这张属于orcl2库中WANGYONG的表COMPANY

 

ORACLE之DBLINK的使用

 

select * from company@TESTLINK1 order by id

从截图中可以看到,在ORCL中可以成功访问到ORCL2中用户WANGYONG的表

下面,利用同样的方式,进行插入,修改,删除操作,依次看截图,每一次操作后均执行查询语句,可对比执行效果:

1)插入 bffdsf

 

ORACLE之DBLINK的使用

 

 

2)修改

 

ORACLE之DBLINK的使用

 

3)删除

 

ORACLE之DBLINK的使用

 

至此,简单的dblink操作就可以了。

课外小知识:

对于上面的链接字符串,还可以创建同义词代替,会稍微省点事。

-- 创建同义词

create synonym TESTSYNONYM FOR company@TESTLINK1;

那么上面的查询、插入、修改、删除中可直接用WYSYNONYM代替company@TESTLINK1即可,例如查询语句可改成如下方式(插入,修改,删除类似):

-- 查询ORCL2中WANGYONG用户的表COMPANY

SELECT * FROM TESTSYNONYM order by id

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>