通过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 ...
随机推荐
- Selenium2+python自动化30-引入unittest框架
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.com ...
- ios NSThred多线程简单使用
关于NSThred开启多线程的方法 - (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg [self perfor ...
- unreal3脚本stacktrace的问题
在unrealscript里获取调用栈,有下面两函数: /** * Dumps the current script function stack to the log file, useful * ...
- struts2获取web元素的方式和方法
获取web资源的方式按是否与servlet耦合可分为两种,再细分按照依赖方式又有两种即 依赖容器 和 依赖注入 什么是依赖容器 就是依赖 ActionContext或者ServletActionC ...
- 用scala实现一个sql执行引擎-(下)
执行 上一篇讲述了如何通过scala提供的内置DSL支持,实现一个可以解析sql的解析器,这篇讲如何拿到了解析结果-AST以后,如何在数据上进行操作,得到我们想要的结果.之前说到,为什么选择scala ...
- 「zigbee - 1」工欲善其事必先利其器 - IAR for 8051 IDE customization
最近在实验室做一些 Zigbee 相关的事情,然而一直没在博客上记录啥东西,也不像原来在公司有动力在 Confluence wiki 上扯东扯西.直到前些阵子,跑到 feibit 论坛上(国内较大的一 ...
- android中include 的使用讲解
include的作用就是重复使用同一段代码,提高代码的重用性.具体说就是,通过include 在 某布局 a.xml 中引用 B.xml布局文件,这个b.xml可同时被多个布局同时使用,所以达到了同一 ...
- day7----面向对象编程进阶
本节内容: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 静态方法 它与类唯一的关联就是需要通过类名来调用这个方法 #静态方法实际跟类没关系,不 ...
- 1.一起来学hibernate之hibernate简介
一.简介 Hibernate,是一个开源的ORM框架.所谓的ORM,即object relative mapping,就是对象关系映射. 那什么是对象关系映射? 对象,即java类,又称为实体类,对象 ...
- codeforces 429D
题意:给定一个数组你个数的数组a,定义sum(i, j)表示sigma(a[i],...a[j]),以及另外一个函数f(i, j) = (i - j)^2 + sum(i+1, j)^2 求最小的f( ...