最近两天项目上线 , 跟着前辈学了不少东西 , 现在整理一下。
DBLINK使用背景因为项目是推广项目 , 是在一期项目上进行增加的功能 , 对数据的升级比较麻烦 。我们的升级策略是先统计出项目中使用的配置表 , 使用Navicat Premium 12中的数据同步功能先将正式的数据和测试中的数据进行对比 , 提取出sql脚 , 其中有一些表是存有blob字段的 , 提取出来的脚本不能直接执行 , 所以用到下面的技术——databaseLink(即跨数据库操作数据) 。
oracle在进行跨库访问时 , 可以通过创建dblink实现 , 可以通过dblink完成插入、修改、删除等操作 。测试环境
首先了解下环境:在tnsnames.ora中配置两个数据库别名:
orcl(用户名:wangyong 密码:1988)
orcl2(用户名:wangyong 密码:123456)
实现在orcl中创建database link来访问orcl2 。
文章插图
第一步:赋予权限在创建database link之前 , 我们需要判断 , 登陆的用户是否具备创建database link 的权限 , 所以我们执行以下的语句(用wangyong用户登陆orcl):
-- 查看wangyong用户是否具备创建database link 权限如果查询有返回行 , 则表示具备创建database link权限 , 否则 , 则需要使用sys登陆orcl为WANGYONG用户赋予创建权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='WANGYONG';
-- 给wangyong用户授予创建dblink的权限此时 , 再执行上面查看是否具备权限的sql语句 , 会发现有返回行 , 表示 , WANGYONG这个用户已经具备创建database link的权限
grant create public database link to wangyong;
第二步;创建database link创建方式有两种:1)通过pl/sql developer图形化创建、2)通过sqlplus中的sql语句创建 , 依次来看
1)pl/sql developer 图形化创建
文章插图
填写完成后点击“Apply”按钮即可创建成功 。
2)sql语句创建
-- 注意一点 , 如果密码是数字开头 , 用“”括起来这样 , 就完成了简单database简单的创建 。
create public database link TESTLINK2 connect to WANGYONG identified by "123456" USING 'ORCL2'
第三步:操作首先 , 我们需要在ORCL2库中新建一张表 , 并插入部分数据 , 如下图:
文章插图
现在 , 我们通过database link 在orcl中访问这张属于orcl2库中WANGYONG的表COMPANY
文章插图
select * from company@TESTLINK1 order by id
从截图中可以看到 , 在ORCL中可以成功访问到ORCL2中用户WANGYONG的表
下面 , 利用同样的方式 , 进行插入 , 修改 , 删除操作 , 依次看截图 , 每一次操作后均执行查询语句 , 可对比执行效果:
1)插入 bffdsf
文章插图
2)修改
文章插图
3)删除
文章插图
至此 , 简单的dblink操作就可以了 。
课外小知识:对于上面的链接字符串 , 还可以创建同义词代替 , 会稍微省点事 。
-- 创建同义词那么上面的查询、插入、修改、删除中可直接用WYSYNONYM代替company@TESTLINK1即可 , 例如查询语句可改成如下方式(插入 , 修改 , 删除类似):
create synonym TESTSYNONYM FOR company@TESTLINK1;
-- 查询ORCL2中WANGYONG用户的表COMPANY
SELECT * FROM TESTSYNONYM order by id
推荐阅读
- Redis学习之数据操作
- 典雅之蕴,中国茶文化
- 石阡,茶叶灾害之年产值逾2亿元
- 惊蛰养生之衣食住行全攻略!这样“养”身体很健康
- 福州茉莉花茶,老福州的节日待客之道
- 健康之道:冬令进补 药补不如食补!
- 梦见自己是一国之主 梦见国家主到我家
- 走进冰岛茶之乡,勐库
- 夫妻之间,什么样的关系,才能走长远?
- 中国四大茶区之旅盘点