oracle在进行跨库访问时,采用dblink实现
首先了解下环境:在tnsnames.ora中配置两个数据库别名:test1/test1@11orcl1、tets2/tets2@12orlc2,在orcl1中创建database link来访问orcl2
#测试数据库1
11orcl1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
#测试数据库2
12orcl2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.12)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
第一步:赋予权限
在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用test1用户登陆11orcl1):
-- 查看test1用户是否具备创建database link 权限select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='test1';
如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为test1用户赋予创建权限
-- 给wangyong用户授予创建dblink的权限 grant create public database link to test1;
此时,再执行上面查看是否具备权限的sql语句,会发现有返回行,表示,test1这个用户已经具备创建database link的权限
第二步;创建database link
我所了解到的创建方式有两种:1)通过pl/sql developer图形化创建、2)通过sqlplus中的sql语句创建,依次来看
1)pl/sql developer 图形化创建
2)sql语句创建
-- 注意一点,如果密码是数字开头,用“”括起来 create public database link TESTLINK2 connect to test2 identified by "test2" USING '12ORCL2'
这样,就完成了简单database简单的创。
SELECT * FROM TESTSYNONYM@TESTLINK2 order by id
至此,简单的dblink操作就可以了,对于上面的链接字符串,还可以创建同义词代替,会稍微省点事
-- 创建同义词 create synonym TESTSYNONYM FOR company@TESTLINK2;
那么上面的查询、插入、修改、删除中可直接用WYSYNONYM代替company@TESTLINK1即可,例如查询语句可改成如下方式(插入,修改,删除类似):
-- 查询12ORCL2中test2用户的表COMPANY SELECT * FROM TESTSYNONYM order by id
转载于:https://www.cnblogs.com/shangshen/p/10657052.html
oracle在进行跨库访问时,采用dblink实现相关推荐
- oracle 将查询出的数据加1-10_PostgreSQL数据库跨库访问
跨库访问常用的三种方式:schema,dblink,postgres_fdw 第一种:schema(架构方式) 其实还是在一个数据库中,只不过把不同数据保存在不同的架构中,创建与public并行的架构 ...
- MySQL源码学习:MySQL中禁止跨库访问的实现
摘要: 先说一下这里"跨库"的意思:当前use的是db1, 仍可以使用select * from db2.table1来访问table1表. 这样使得我们需要访问同一个MySQL ...
- Oracle 跨库 查询 复制表数据
在目前绝大部分数据库有分布式查询的需要.下面简单的介绍如何在oracle中配置实现跨库访问. 比如现在有2个数据库服务器,安装了2个数据库.数据库server A和B.现在来实现在A库中访问B的数据库 ...
- ssm项目解决AJAX跨域,ssm项目跨域访问
最近使用ssm开发了一个项目,为了项目的开发速度,采用的是前后端同时开发,所以前端文件没有集成在项目中,最后在调试时涉及到了跨域.跨域的解决方法很多,我采用的是最简单的一种,代码如下: 新建一个过滤器 ...
- oracle 跨分区查询效率,Oracle分区表做跨分区查询
问:有一张大表,其中按时间字段(TIME_ID)进行表分区(按季度分区),但是如果业务人员做跨季度的大批量数据的查询时,未能走TIME_ID分区索引,导致全表扫描.此种情况该如何处理? 示例解析: 1 ...
- sqlserver垮库查询_SQLServer跨库查询--分布式查询
--用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB' ,'sq ...
- sql server的跨库查询(简单实现)
sql server怎么跨库查询? 因为程序里建立连接时已经有了服务器和数据库, 库 connGZ.Provider="SQLOLEDB.1" ...
- [Unity WWW] 跨域访问解决方法
什么是跨域访问 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation).信任关系是连接在域与域之间的桥梁.当一个域与其他域建立了信任 ...
- Nginx- 实现跨域访问
一.什么是跨域 跨域:由于浏览器的同源策略,即属于不同域的页面之间不能相互访问各自的页面内容.详细见下表: 注:同源策略,单说来就是同协议,同域名,同端口 URL 说明 是否允许通信 http://w ...
最新文章
- 使用idea创建springboot项目并打成war包发布到weblogic上...
- SAP WM Storage Type下不允许负库存的设置
- sumif三个条件怎么填_Excel条件求和函数sumif详解及应用
- pyqt5学习(四)事件和信号
- 隐马尔科夫模型HMM自学(1)
- 虚函数实现多态---C++
- Java:计算类的serialVersionUID
- I/O模型系列之四:两种高性能IO设计模式 Reactor 和 Proactor
- 《Python Cookbook 3rd》笔记(1.19):转换并同时计算数据
- linux修改python版本修改哪个配置文件_linux安装python修改默认python版本方法
- multi task训练torch_采用single task模型蒸馏到Multi-Task Networks
- equals和==比较
- C语言小游戏-扫雷-源代码
- vm虚拟机iso镜像linux系统下载地址,Vmware Tools ISO 虚拟机ISO系统镜像大全
- 使用stm32 SIM800A发送短信
- 基于MDKA5D31-EK_T70开发板的QT示例-demo04:LM75A温度监测
- ajax hapi上传文件,在hapi框架里使用ajax提交表单数据,但是服务端接收到的数据是空对象。怎么办啊?...
- 光端机2m是什么意思,光端机E1与2M有什么关系?
- linux mod jk.so,linux - mod_jk无法连接Apache和tomcat - SO中文参考 - www.soinside.com
- python软件长什么样图片_听说各大网站的色情图片识别都是用的这个程序?Python识别色情图...
热门文章
- 注册表删除chrome插件
- php判断是否存在http,php获取http-header来判断文件是否存在
- 三维点云学习(5)3-Deep learning for Point Cloud-PointNet++
- Myeclipse 8.5 注册码
- 安装VS2008关于解决磁盘已满问题方案.
- linux dma 拷贝内存数据_原来 8 张图,就可以搞懂「零拷贝」了
- 2020-08-22 OpenWRT 脚本修改网卡MAC
- 单元测试工具cmocka英文教程,非常漂亮
- TIA Portal
- 解决打包AssetBundle时Shader(材质)丢失问题