首先了解下环境:在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实现相关推荐

  1. oracle 将查询出的数据加1-10_PostgreSQL数据库跨库访问

    跨库访问常用的三种方式:schema,dblink,postgres_fdw 第一种:schema(架构方式) 其实还是在一个数据库中,只不过把不同数据保存在不同的架构中,创建与public并行的架构 ...

  2. MySQL源码学习:MySQL中禁止跨库访问的实现

    摘要:  先说一下这里"跨库"的意思:当前use的是db1, 仍可以使用select * from db2.table1来访问table1表. 这样使得我们需要访问同一个MySQL ...

  3. Oracle 跨库 查询 复制表数据

    在目前绝大部分数据库有分布式查询的需要.下面简单的介绍如何在oracle中配置实现跨库访问. 比如现在有2个数据库服务器,安装了2个数据库.数据库server A和B.现在来实现在A库中访问B的数据库 ...

  4. ssm项目解决AJAX跨域,ssm项目跨域访问

    最近使用ssm开发了一个项目,为了项目的开发速度,采用的是前后端同时开发,所以前端文件没有集成在项目中,最后在调试时涉及到了跨域.跨域的解决方法很多,我采用的是最简单的一种,代码如下: 新建一个过滤器 ...

  5. oracle 跨分区查询效率,Oracle分区表做跨分区查询

    问:有一张大表,其中按时间字段(TIME_ID)进行表分区(按季度分区),但是如果业务人员做跨季度的大批量数据的查询时,未能走TIME_ID分区索引,导致全表扫描.此种情况该如何处理? 示例解析: 1 ...

  6. sqlserver垮库查询_SQLServer跨库查询--分布式查询

    --用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB' ,'sq ...

  7. sql server的跨库查询(简单实现)

    sql server怎么跨库查询? 因为程序里建立连接时已经有了服务器和数据库,   库        connGZ.Provider="SQLOLEDB.1"           ...

  8. [Unity WWW] 跨域访问解决方法

    什么是跨域访问 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation).信任关系是连接在域与域之间的桥梁.当一个域与其他域建立了信任 ...

  9. Nginx- 实现跨域访问

    一.什么是跨域 跨域:由于浏览器的同源策略,即属于不同域的页面之间不能相互访问各自的页面内容.详细见下表: 注:同源策略,单说来就是同协议,同域名,同端口 URL 说明 是否允许通信 http://w ...

最新文章

  1. 使用idea创建springboot项目并打成war包发布到weblogic上...
  2. SAP WM Storage Type下不允许负库存的设置
  3. sumif三个条件怎么填_Excel条件求和函数sumif详解及应用
  4. pyqt5学习(四)事件和信号
  5. 隐马尔科夫模型HMM自学(1)
  6. 虚函数实现多态---C++
  7. Java:计算类的serialVersionUID
  8. I/O模型系列之四:两种高性能IO设计模式 Reactor 和 Proactor
  9. 《Python Cookbook 3rd》笔记(1.19):转换并同时计算数据
  10. linux修改python版本修改哪个配置文件_linux安装python修改默认python版本方法
  11. multi task训练torch_采用single task模型蒸馏到Multi-Task Networks
  12. equals和==比较
  13. C语言小游戏-扫雷-源代码
  14. vm虚拟机iso镜像linux系统下载地址,Vmware Tools ISO 虚拟机ISO系统镜像大全
  15. 使用stm32 SIM800A发送短信
  16. 基于MDKA5D31-EK_T70开发板的QT示例-demo04:LM75A温度监测
  17. ajax hapi上传文件,在hapi框架里使用ajax提交表单数据,但是服务端接收到的数据是空对象。怎么办啊?...
  18. 光端机2m是什么意思,光端机E1与2M有什么关系?
  19. linux mod jk.so,linux - mod_jk无法连接Apache和tomcat - SO中文参考 - www.soinside.com
  20. python软件长什么样图片_听说各大网站的色情图片识别都是用的这个程序?Python识别色情图...

热门文章

  1. 注册表删除chrome插件
  2. php判断是否存在http,php获取http-header来判断文件是否存在
  3. 三维点云学习(5)3-Deep learning for Point Cloud-PointNet++
  4. Myeclipse 8.5 注册码
  5. 安装VS2008关于解决磁盘已满问题方案.
  6. linux dma 拷贝内存数据_原来 8 张图,就可以搞懂「零拷贝」了
  7. 2020-08-22 OpenWRT 脚本修改网卡MAC
  8. 单元测试工具cmocka英文教程,非常漂亮
  9. TIA Portal
  10. 解决打包AssetBundle时Shader(材质)丢失问题