有很多时候,我们需要MSSQL与Oracle进行跨库查询或数据交互。本篇随笔将阐述如何通过MSSQL的连接服务器连接至Oracle数据库,并且读取数据的示例。
具体步骤
首先需要到Oracle的官网下载Oracle Client(简称OCT),也就是通常大家所说的Oracle客户端。OCT的作用就是连接MSSQL与Oracle的一个桥梁,有了OCT就可让MSSQL与Oracle互相通信。
OCT的官网下载地址为: ,如下图:
当前的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数据库的方法,最后说明了一下跨库查询的方式。希望对你有所帮助。