通过MSSQL连接服务器连接至Oracle数据库
前言
有很多时候,我们需要MSSQL与Oracle进行跨库查询或数据交互。本篇随笔将阐述如何通过MSSQL的连接服务器连接至Oracle数据库,并且读取数据的示例。
具体步骤
首先需要到Oracle的官网下载Oracle Client(简称OCT),也就是通常大家所说的Oracle客户端。OCT的作用就是连接MSSQL与Oracle的一个桥梁,有了OCT就可让MSSQL与Oracle互相通信。
OCT的官网下载地址为: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/database12c-win64-download-2297732.html,如下图:

当前的Oracle最新版本为12C,将页面向下拖动,会发现两个OCT的版本。

分别为32位OCT和64位OCT。根据你的系统情况,安装对应的版本即可。
博主的相关版本如下
|
服务器 |
操作系统 |
数据库 |
|
Server1 |
Windows Server 2012 R2 x64 |
Microsoft Sql Server 2014 Enterprise x64 |
|
Server2 |
Windows Server 2012 R2 x64 |
Oracle 10g |
细心的人可能会问,为什么你的Oracle 是10g,你要选择12c版本的OCT,这个原因主要是因为博主有高版本强迫症。
由于Server1是64位操作系统,所以选择了64位的OCT进行安装。安装过程很简单,运行setup即可,这里就不再赘述。
安装完成之后最好重启一次服务器,避免发生未知错误。
重启之后,通过OCT的Net Manager
进行Oracle连接配置。如下图:

配置好之后通过连接测试,测试一下是否正确,如果连接成功,表示配置正确无误。
打开MSSQL,在连接服务器的访问接口中,你会发现多出了一个OraOLEDB.Oracle的接口。如下图:

该接口的具体配置如下:

这里注意,"允许进程内"项必须勾选,否则将无法连接到oracle
最后一步,需要新建连接服务器,具体步骤如下图所示:


其中连接服务器名称为MSSQL连接服务器的名字,提供程序为Oracle Provider for OLE DB,该Provider是在安装完成OCT之后才会有。产品名称无关紧要,博主这里填写的是具体的Oracle版本。最重要的是数据源参数,博主填写的是tpemr,这个参数的来源是在OCT的Net Manager中配置的服务命名(如下图中服务器命名为tpemr),如果填写错误或者Net Manager中配置错误,都将导致无法连接到Oracle。

之后在安全性选项卡中配置tpemr相关的Oracle用户名和密码。之后确定即可,如下图:

之后在MSSQL的连接服务器中将会出现一个新的TPEMR连接服务器。通过测试连接可测试连接是否正常,如下图:



至此,MSSQL的连接服务器连接至Oracle数据库完成。
通过MSSQL的连接服务器查询Oracle数据
查询的方法很简单,基本语法与MSSQL连接MSSQL的连接服务器的查询语法类似。
基本方式为 select * from [连接服务器名称]..[数据库所有者名称].[表名]
其余的CRUD操作和这种方式类似。但是前提是你的Oracle账户具备这些权限。
后续
本博文具体的阐述了建立MSSQL连接服务器连接至Oracle数据库的方法,最后说明了一下跨库查询的方式。希望对你有所帮助。如果感觉不错,请点一波推荐。
转载请注明出处: http://www.cnblogs.com/smallprogram
通过MSSQL连接服务器连接至Oracle数据库的更多相关文章
- 如何使用navicat远程连接服务器上的oracle数据库
- ORA-12538;ORA-12154;使用PL/SQL dve无法连接远程服务器上的oracle数据库,同时本机上也安装了一个oracle数据库
问题描述:本人使用PL/SQL dve连接远程服务器上的oracle数据库,一直是没有问题的.我想提高下自己在数据库方面的能力就在自己的笔记本上安装了一个oracle数据库实例,安装并配置好之后,使用 ...
- [转]oracle10客户端PL/SQL Developer如何连接远程服务器上的oracle数据库
时间:2013年8月21日 前提条件:假设你已经安装好了oracle和PL/SQL Developer,知道远程服务器的IP和数据库端口,知道远程服务器上的oracle数据库名和密码 如何用PL/SQ ...
- windows下plsql连接linux下的oracle数据库
windows下plsql连接linux下的oracle数据库 经过多方查找,终于找到解决办法,特此记录下来,共享之. PL/SQL Develorper:目前未发现可以在Linux系统中安装的版本. ...
- Linux服务器中创建Oracle数据库实例
紧接上篇,在Linux服务器已经完成对Oracle数据库软件的安装后,接下来要创建Oracle实例,看图说话: [su – oracle echo $DISPLAY export DISPLAY=10 ...
- python 在window 系统 连接并操作远程 oracle 数据库
1,python 连接 oracle 需要 oracle 自身的客户端 instantclient,可以去官网下载自己需要的版本, https://www.oracle.com/technetwor ...
- PL/SQL Developer连接本地64位Oracle数据库
1.安装oracle Clinet 首先到Oracle官网上去下载一个Oracle 11g Client(我的是11g的oracle),不过需要先申请一个Oracle 帐号,才能下载. 目前下载地址: ...
- 随笔记:如何使用Python连接(/操作)Oracle数据库(Windows平台下)
遇到需求,我们需要用Python对Oracle数据库进行操作. 这次我们使用cx_Oracle Oracle Client 在安装cx_Oracle之前,先安装Oracle客户端. cx_Oracle ...
- 使用VISIO远程服务器上的ORACLE数据库,反向生成数据库实体关系图
反向即根据已有的数据库,生成ER图,很多工具都可以实现这一过程,如visio,powerdesigner等,下面文章记录一下我使用VISIO生成远程服务器上的一个数据库ER图过程,供以后自己参考. 1 ...
随机推荐
- Java 基础知识总结 (四、String)
四.String public final class String extends Object implements Serializable, Comparable<String>, ...
- CK13物料价格评估的数据ALV显示
*&---------------------------------------------------------------------* *& Report ZPP023 * ...
- hdu 5666 (大数乘法) Segment
题目:这里 题意:在线段x+y=q与坐标轴围成的三角形中,求有多少个坐标为整数的点,答案模上p. 很容易就想到最后答案就是((q-1)*(q-2))/2然后模上p就是了,但是这个数字比较大,相乘会爆l ...
- 揭开HTTP网络协议神秘面纱系列(二)
HTTP报文内的HTTP信息 HTTP协议交互的信息被称为HTTP报文,请求端的HTTP报文叫做请求报文,响应端的叫做响应报文. HTTP为了提升传输速率,其在传输数据时,按照数据原样进行压缩传输,相 ...
- secure erase 时必须umount
不umont就进行secure erase,仍然会执行成功,但是ssd确没有被清0,使用hexdump可以验证. 但是secure erase 命令却返回成功,造成误解以为已经擦除成功. 所以,sec ...
- EasyUI DataGrid 配置参数
var queryParams = $('#SBDiv_1_DateGrid').datagrid('options').queryParams; queryParams.SearchTime = & ...
- oracle学习
在平时的工作学习中,经常需要使用到oracle数据库,将平时用到的一些技巧记录在这里,以便以后随时可以翻阅. 1.日期类型的比较 插入日期时,经常会使用sysdate来插入数据,但sysdate插入的 ...
- 用c语言写的简单计算器
这是自己在学习C语言,凭借自己的兴趣,将课本的知识运用后整理的关于C语言计算器的代码.计算器实现的功能有:加.减.乘.除.求余.功能简单,但对于初学者的我来说能把它写出来,排除每个错误依旧是个难题.前 ...
- 在CentOS6.7操作系统上编译安装mysql-5.6.31
功能概述: 由于在centos 6.7下通过yum安装的mysql是5.1版本的,不满足需求,因此经常性需要编译安装mysql服务等. 一.安装mysql 1.安装前提 1)安装编译mysql代码所依 ...
- 编程之美2014挑战赛 复赛 Codehunt平台试题答案
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...