在64位SQL Server中创建Oracle的链接服务器
当我们同时使用SQL Server和Oracle来存储数据时,经常会用到跨库查询。为了方便使用跨库查询,一个最好的办法就是通过创建链接服务器来实现。既可以在SQL Server中创建Oracle的链接服务器,也可以在Oracle中创建SQL Server的链接服务器。本文主要讲述如何在SQL Server中创建Oracle的链接服务器,可以通过图形界面和命令两种方式来创建。
工具/原料
Microsoft Windows Server 2003 R2 Enterprise x64 Edition Service Pack2
Microsoft SQL Server 2005 Standard Edition x64
Oracle Provider for OLE DB
0. 前期准备工作——安装驱动
如果用32位win2003操作系统,会有系统自带的Microsoft OLE DB Provider for Oracle驱动,因此不需要做额外的准备工作,但如果使用的是64位系统,那么这个驱动是没有的,并且微软也不提供这个驱动的64位版本,因此,此时只能使用Oracle提供的Oracle Provider for OLE DB这个驱动。
那么如何安装这个驱动呢?安装一个完整的Oracle11gR2程序也是一个有效的方法,但这个64位版本的安装包有2个多G,相当庞大,如果仅仅是为了建立链接服务器,完全没必要装这么个庞然大物。其实我们只需要到Oracle官网上下载ODAC压缩包即可。
至于如何安装ODAC,不是本文的重点,大家可以百度搜索我的另一篇文章——《Oracle数据访问组件ODAC的安装方法》。
END
1. 通过图形界面创建Oracle的链接服务器
- 1
打开Microsoft SQL Server Management Studio并以sa身份登录,在左侧的“对象资源管理器”窗口中展开“服务器对象”节点,在其下的“链接服务器”节点上右键选择“新建链接服务器...”,如图

- 2
在弹出的“新建链接服务器”对话框中,按照图示填写,具体填写项目说明如下:
* 链接服务器:这是链接服务器的别名,名字可以由你自己随意决定
* 服务器类型选择“其他数据源”
* 访问接口:一定要选择“Oracle Provider for OLE DB”。如果是32位系统,还可以选择“Microsoft OLE DB Provider for Oracle”,但64位系统就只能选择前者
* 产品名称:一定是“Oracle”,这是固定写法,只要是链接Oracle数据库,都得这么写
* 数据源:是你要链接的Oracle数据库的库名。在我的Oracle数据库软件里,建立了一个名为ora的数据库,我想链接到这个名为ora的数据库,所以我这里的“数据源”填的就是“ora”,大家可以根据自己的实际情况来填写。
填好以后不要急着去点击“确定”按钮。

- 3
再点击左侧“选项页”里的“安全性”,右边选择最下面的“使用此安全上下文建立连接”,然后在下面输入连接到ora(根据自己的实际情况来更改)数据库的用户名和密码。再点击“确认”按钮,至此,一个明文ORA_TEST的链接服务器就建好了。
END
2. 通过命令来创建Oracle的链接服务器
把下面两条命令语句补全,然后在SQL Server中执行即可创建成功:
EXEC master.dbo.sp_addlinkedserver @server = N'别名', @srvproduct=N'库名',@provider=N'MSDAORA', @datasrc=N'TNS名'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'别名', @locallogin = NULL ,@useself = N'False', @rmtuser = N'模式名', @rmtpassword = N'密码'
END
3. 测试查询Oracle数据库
select * from openquery(ORA_TEST, 'SELECT * FROM tab')
END
4. 可能遇到的问题
在测试查询Oracle数据库时,有可能会遇到无法创建“OraOLEDB.Oracle”的实例的错误。这个问题可以在百度经验里搜索我的另一篇文章——《无法创建“OraOLEDB.Oracle”的实例的解决办法》。
END
注意事项
本文的成功是建立在Oracle数据库驱动的成功安装和tnsnames.ora文件的正确配置的基础之上的,对这一点如果有疑惑,大家可以百度搜索我的另一篇文章——《Oracle数据访问组件ODAC的安装方法》。
在测试查询Oracle数据库时,有可能会遇到无法创建“OraOLEDB.Oracle”的实例的错误。这个问题可以在百度经验里搜索我的另一篇文章——《无法创建“OraOLEDB.Oracle”的实例的解决办法》。
在64位SQL Server中创建Oracle的链接服务器的更多相关文章
- 在64位SQL Server中创建Oracle的链接服务器 Link Server
有时候我们希望在一个sqlserver下访问另一个sqlserver数据库上的数据,或者访问其他oracle数据库上的数据,要想完成这些操作,我们首要的是创建数据库链接. 数据库链接能够让本地的一个s ...
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
由于业务逻辑的多样性,经常得在sql server中查询不同数据库中数据,这就产生了分布式查询的需求 现我将开发中遇到的几种查询总结如下: 1.access版本 --建立连接服务器 EXEC sp_a ...
- 【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据
从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件, 需要用不同的驱动程序来实现. 在64位的机 ...
- 【SQL Server数据迁移】32位的机器:SQL Server中查询ORACLE的数据
从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件,需要用不同的驱动程序来实现. 在32位的机器 ...
- 64位sql server 如何使用链接服务器连接Access
原文:64位sql server 如何使用链接服务器连接Access 测试环境 操作系统版本:Windows Server 2008 r2 64位 数据库版本:Sql Server 2005 64位 ...
- sql server中创建链接服务器图解教程
转自sql server中创建链接服务器图解教程 1.展开服务器对象-->链接服务器-->右击"新建链接服务器" 注意:必须以数据库管理员身份登录(通常也就是sa帐号) ...
- SQL Server 2008创建oracle链接服务器(心得)
操作系统是32位的情况下,曾经没费太多时间创建好了到oracle的链接服务器.主要要点就是: 1.安装oracle精简客户端.当时我用的是版本比较低的“oracle9i310-客户端简化版”,安装好了 ...
- 当您尝试从 64 位 SQL Server 客户端上运行分布式的查询到链接的 32 位 SQL Server 时,您可能会收到一条错误消息
如何处理64位SQL访问32位SQL执行脚本语句问题 链接服务器"SERVER_YBJK"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 &qu ...
- SQL Server中创建sde数据库
在ArcCatalog或者ArcMap中打开ArcToolBox工具箱. 在工具箱中,找到创建企业级地理数据库工具,依次为数据管理工具→地理数据库管理→创建企业级地理数据库,如图所示. 双击打开创建企 ...
随机推荐
- 【Scala】尾递归优化
以递归方式思考 递归通过灵巧的函数定义,告诉计算机做什么.在函数式编程中,随处可见递归思想的运用.下面给出几个递归函数的例子: object RecursiveExample extends App{ ...
- 【luogu】 P1433 吃奶酪
题目描述 房间里放着n块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处. 输入格式: 第一行一个数n (n<=15) 接下来每行2个实数,表示第i块奶酪的坐标. ...
- JSP 简介
160901 1. 一句话介绍什么是JSP? 和java相关的技术,可以开发出动态的,高性能的Web应用程序,的一门开发语言 2. 优点即特点,那么jsp的优点有哪些呢? JSP实现的We ...
- SQL SERVER 数据库操作脚本
创建数据库 create Database MYDB on ( Name=mydb_dat, FileName='c:\data\mydate.mdf',size=10,maxsize=50 ) LO ...
- 代码中,使用__DATE__宏,获取程序编译时间,如何保证每次编译代码(非重新生成方式),都能更新__DATE__的值?
代码中,使用__DATE__宏,获取程序编译时间,如何保证每次编译代码(非重新生成方式),都能更新__DATE__的值? 解决:通过vs的预先生成命令中,添加批处理命令,删除对应的obj文件方式,强制 ...
- Web存储-Web Storage
/* // 如下是initStorageEvent()方法参数,其中两个参数我默认写成false了,一般都不用改动 initStorageEvent(eventType, false, false, ...
- Android高级之十二讲之如何降低应用内存消耗
安卓应用的内存往往是有限的,从开始的8M到16M,24M,32M,48M,64M等逐步变大,但内存的变大是由于分辨率的提高导致,并不意味着可以随意声明使用内存,而不及时回收(即使Java有自己的垃圾回 ...
- 对于似1/(1+x^4)型的不定积分的总结
最近在求解一道不定积分的经典例题时遇到了一点小麻烦.的确,在处理1/(1+x^4)积分的时候,需要一定的技巧性,不然会使计算量变得庞大. 下面,我简单的总结了类似结构不定积分的求解方法,希望大家看完之 ...
- vuejsLearn---通过手脚架快速搭建一个vuejs项目
开始快速搭建一个项目 通过Webpack + vue-loader 手脚架 https://github.com/vuejs-templates/webpack 按照它的步骤一步一步来 $ npm i ...
- 申请使用aws的一些笔记
1. 申请可以使用asw.amazon.com/cn/,这个界面虽然是中文的,但是申请的是海外的aws. 2. 审核后会收到如下的一封邮件: 3. 剩下创建EC2和RDS的过程可以参考http://w ...