新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 数据库 > Oracle

ORACLE之DBLINK的使用

时间:2019-12-04 11:16:27  来源:  作者:

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

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



Tags:ORACLE   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
最近两天项目上线,跟着前辈学了不少东西,现在整理一下 。DBLINK使用背景因为项目是推广项目,是在一期项目上进行增加的功能,对数据的升级比较麻烦。我们的升级策略是先统计出项...【详细内容】
2019-12-04   ORACLE  点击:(0)  评论:(0)  加入收藏
概述今天主要介绍Oracle数据库的三大索引类型,仅供参考。 一、B-Tree索引三大特点:高度较低、存储列值、结构有序1.1利用索引特性进行优化外键上建立索引:不但可以提升查询效率...【详细内容】
2019-11-29   ORACLE  点击:(5)  评论:(0)  加入收藏
1.拉取oracle10g镜像文件docker pull vkanjilal/oracle10g2.创建挂载目录mkdir -p /data/oracle1og3.创建oracle容器docker run -d -p 1521:1521 -v /data/oracle10g:/data...【详细内容】
2019-09-12   ORACLE  点击:(6)  评论:(0)  加入收藏
1、for update nowait 与 for update 的目的: 锁定表的所有行,排斥其他针对这个表的写操作。确保只有当前事务对指定表进行写操作。例子:for update1 select * from TTable1...【详细内容】
2019-11-15   ORACLE  点击:(9)  评论:(0)  加入收藏
Oracle 基础知识(特别基础)1 如何确定数据库已经启动(1)查看进程Ps –ef |grep oracleoracle 39452856 1 0 May 23 - 11:59 ora_smon_GJ2oracle 40304850 1 0 May 23 - 3...【详细内容】
2019-11-13   ORACLE  点击:(8)  评论:(0)  加入收藏
概述今天主要介绍Oracle11g 网络访问控制列表--DBA_NETWORK_ACL。一、DBA_NETWORK_ACL_PRIVILEGESDBA_NETWORK_ACL_PRIVILEGES describes the network privileges defined i...【详细内容】
2019-11-07   ORACLE  点击:(16)  评论:(0)  加入收藏
由于SQL Server不常用,所以这里只针对MySQL数据库和Oracle数据库的区别(1) 对事务的提交MySQL默认是自动提交,而Oracle默认不自动提交,需要用户手动提交,需要在写commit;指令...【详细内容】
2019-11-06   ORACLE  点击:(16)  评论:(0)  加入收藏
近期项目需要从虚拟机环境迁移到容器环境,其中有一个项目在迁移到容器环境之后的两天之内出现了2次“死锁(deadlock)”的问题,部分关键日志如下:Found one Java-level deadlock...【详细内容】
2019-11-05   ORACLE  点击:(12)  评论:(0)  加入收藏
oracle按天,周,月,季度,年查询排序天--to_char(t.start_time,'YYYY-MM-DD')周 --to_char(t.start_time,'YYYY'),to_char(t.start_time,'IW')月度--to_ch...【详细内容】
2019-10-18   ORACLE  点击:(56)  评论:(0)  加入收藏
概述今天主要总结一下Oracle表空间每日增长和历史情况统计的一些脚本,仅供参考。11g统计表空间的每日增长量SELECT a.snap_id, c.tablespace_name ts_name, to_char(to_date(...【详细内容】
2019-10-14   ORACLE  点击:(69)  评论:(0)  加入收藏
概述Oracle在解析SQL语句的时候,如果在共享池中发现匹配的SQL语句,就可以避免掉解析的大部分开销。在共享池中找到匹配的SQL语句所对应的解析被称为软解析(soft parse)。如果...【详细内容】
2019-10-14   ORACLE  点击:(28)  评论:(0)  加入收藏
出处:墨天轮(https://www.modb.pro/db/7055,复制至浏览器,即可查看)本文为原创文章,如有转载,请标明出处从。导读:怀晓明先生(网名lastwinner),是具有多年数据库开发与项目管理经验的数...【详细内容】
2019-10-11   ORACLE  点击:(17)  评论:(0)  加入收藏
概述物理设计就是根据所选择的关系型数据库的特点对逻辑模型进行存储结构设计。它涉及的内容包含以下4方面:1. 定义数据库、表及字段的命名规范;2. 选择合适的存储引擎或者存...【详细内容】
2019-10-11   ORACLE  点击:(19)  评论:(0)  加入收藏
概述最近在归档某张大表时因需要重建约束,碰到了个ORA-02298类型的报错,这个问题还算比较常见的,这里整理一下一般的处理方法。 思路产生ORA-02298错误一般是你要插入的表A里,有...【详细内容】
2019-10-08   ORACLE  点击:(47)  评论:(0)  加入收藏
Oracle 12C中一个重要特性多租户特性被引入。12C之前,数据库实例(Oracle Instance)与数据库之间为多对一或一对一关系,若服务器上同时运行多个Oracle数据库,必须同时运行多个数据库实例,资源耗费非常大。...【详细内容】
2019-09-27   ORACLE  点击:(11)  评论:(0)  加入收藏
抽空总结一下Oracle 物化视图和物化视图日志的一些概念和相关命令,仅供参考。 一、相关概念物化视图是将查询预先定义在结构中,并手动或者定期刷新将结果存储在物化视图段中,也...【详细内容】
2019-09-26   ORACLE  点击:(114)  评论:(0)  加入收藏
create table student(name varchar2(30),gj varchar2(20),score number(4,1));insert into student (name, gj, score) values ('李二', '中国', 90);i...【详细内容】
2019-09-20   ORACLE  点击:(34)  评论:(0)  加入收藏
概述今天主要介绍几个sql,可能很多人就收藏一下但很少会去用,所以结合案例来做一下分析,这样就知道在什么场景用了。下面介绍一下案例。1、监控分析从监控发现物理IO读处于比...【详细内容】
2019-09-16   ORACLE  点击:(36)  评论:(0)  加入收藏
Procedure P_EmployeeAccount( Ri_Ret Out Int,Rv_Msg Out Varchar2) IsRec_Test_2017 Test_2017%Rowtype;type type_tmp is record(A Test_2016.A%type,B Test_2016.B%typ...【详细内容】
2019-09-11   ORACLE  点击:(20)  评论:(0)  加入收藏
一、MySQL 优点:体积小、速度快、总体拥有成本低,开源;支持多种操作系统;是开源数据库,提供的接口支持多种语言连接操作 ;MySQL的核心程序采用完全的多线程编程。线程是轻量级的进...【详细内容】
2019-08-29   ORACLE  点击:(46)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条