Oracle学习(五)DBLINK
一、DBLINK学习
目的:为了解决跨库访问的需求。
场景如下:tnsnames.ora(oracle的库配置文件)下配置了2个库的环境地址,现在要实现跨库访问。
PS:DBLINK和是否同一个主机无关,只要跨库,不管2个库是不是在一台主机上,都要使用DBLINK进行通信(前提条件:两个库端口要通,可以使用telnet命令来测试)

第一步:赋予权限
--在创建database link(DBLINK)之前需要判断,登陆的用户是否具备创建database link 的权限
PS:注意,此时登陆的账号是需要创建dblink的账号(用这个库去调用其他库) -- 1、查看当前登陆的账号是否具备创建database link 权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='当前登陆的账号';
PS:如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为当前登陆的账号赋予创建权限 -- 2、给当前登陆的账号授予创建dblink的权限
grant create public database link to '当前登陆的账号'; -- 3、 再次执行第一条查看是否具备权限的sql语句,会发现有返回行,表示,当前登陆的账号已经具备创建database link的权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='当前登陆的账号';
第二步:创建dblink
方式1:pl/sql developer 图形化创建

方式2:sql语句创建
-- 1、注意一点,如果密码是数字开头,用“”括起来
CREATE PUBLIC DATABASE LINK DBLINK名称 CONNECT TO 当前登陆账号 IDENTIFIED BY "密码" USING '连接的数据库'
--例:
CREATE PUBLIC DATABASE LINK TESTDBLINK CONNECT TO ZHANGHAO IDENTIFIED BY "123456" USING 'TESTDATABASE' -- 2、sql中直接写入库配置
CREATE DATABASE LINK DBLINK名称 CONNECT TO 当前登陆账号 IDENTIFIED BY "密码" USING '
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = XXX.XXX.XXX)
(PORT = 1521)
)
)
(CONNECT_DATA =
(SERVICE_NAME = XXXX)
)
)
';
第三步:操作



四、创建同义词(简化操作)
-- 创建同义词
create synonym TESTSYNONYM(同义词) FOR company@TESTLINK1;
PS:创建同义词以后,查询、插入、修改、删除中可直接用 TESTSYNONYM 代替company@TESTLINK1,例如查询语句可改成如下方式(插入,修改,删除类似):
SELECT * FROM TESTSYNONYM(同义词) order by id -- 查询ORCL2中WANGYONG用户的表COMPANY
参考资料:
- Oracle DBLINK 简单使用(特此感谢!)
Oracle学习(五)DBLINK的更多相关文章
- Oracle学习(五):多表查询
1.知识点:能够对比以下的录屏进行阅读 SQL> --等值连接 SQL> --查询员工信息: 员工号 姓名 月薪 部门名称 SQL> select empno,ename,sal,d ...
- oracle学习 五 使用存储过程创建一个重置密码为123456的功能(持续更新中)
首先写一个函数是MD5的方法 create FUNCTION GET_MD5 ( p_str in varchar2) RETURN varchar2 IS BEGIN RETURN Utl_Raw. ...
- Oracle学习系列1-7
Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...
- Oracle学习系列6
Oracle学习系列6 ************************************************************************************ 删除约 ...
- Oracle学习系列3
Oracle学习系列3 ************************************************************************************ 多表查 ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- Oracle学习线路
出自huyangg的博客,地址是:oracle学习路线图 1.sql.pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验) 作为oracle的基本功,需要大家对sql和 ...
- Oracle学习指南
Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...
- Oracle学习系列7
Oracle学习系列7 ************************************************************************************ 关联表 ...
- Oracle学习系列5
Oracle学习系列5 ************************************************************************************ ,掌握 ...
随机推荐
- 要有一颗理财的心 - 读<富爸爸.穷爸爸>
记得工作没多久后的一次加薪的例行谈话.部门经理和我说,不能靠工资过日子,要多想想怎么投资,我的主要财富就是靠投资赚来的.当时第一反应,老板,你不给我加薪找这借口也太牵强了吧.我的收入只有工资,我的工资 ...
- 算法-利用队列实现逐行打印杨辉三角形的前n行
分别打印二项式(a+b)^n展开项的系数,在程序中利用了一个队列,在输出上一行系数时,将下一行的系数预先放入队列中.在各行系数间插入0. void YANGVI(int n){ Queue q(n+) ...
- 如何为指定python解释器安装pip
有时候我们通常会有很多python解释器,例如python2.python3.python(Anaconda). 参考链接:https://www.cnblogs.com/michaelcjl/p/1 ...
- Vue的数据响应式
getter和setter怎么用 示例代码 getter ,关键词为 get ,用于获取一个值.定义时为函数,但是使用时不用加括号. setter 用于对数据的改写 Object.defineProp ...
- CF1271C Shawarma Tent 题解
通过分析样例可以发现,离学校越近的地点经过的路线也会越多,因此我们只要考虑学校周围的八个点即可.而且可以发现,对于一个点,路线会经过这个点的节点是确定的.因此在输入的时候可以统计学校周围八个节点被经过 ...
- Combine 框架,从0到1 —— 2.通过 ConnectablePublisher 控制何时发布
本文首发于 Ficow Shen's Blog,原文地址: Combine 框架,从0到1 -- 2.通过 ConnectablePublisher 控制何时发布. 内容概览 前言 使用 ma ...
- 百度与谷歌seo优化的差别
http://www.wocaoseo.com/thread-126-1-1.html 常有朋友问谷歌(google)和百度(baidu)到底有什么区别?我在纠结这个问题该如何回答.如果从公平公正的角 ...
- Python画图库Turtle库详解篇
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...
- Android开发之将图片文件转化为字节数组字符串,并对其进行Base64编码处理
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, 转载请说明出处. /** * @将图片文件转化为字节数组字符串,并对其进行Base64编码处理 * ...
- viewPager2的Bug
在使用数据绑定时,viewpager2的 android:layout_width 必需 match_parent,不然要么显示不正常,要么直接崩溃.