当我们同时使用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. 1

    打开Microsoft SQL Server Management Studio并以sa身份登录,在左侧的“对象资源管理器”窗口中展开“服务器对象”节点,在其下的“链接服务器”节点上右键选择“新建链接服务器...”,如图

  2. 2

    在弹出的“新建链接服务器”对话框中,按照图示填写,具体填写项目说明如下:

    * 链接服务器:这是链接服务器的别名,名字可以由你自己随意决定

    * 服务器类型选择“其他数据源”

    * 访问接口:一定要选择“Oracle Provider for OLE DB”。如果是32位系统,还可以选择“Microsoft OLE DB Provider for Oracle”,但64位系统就只能选择前者

    * 产品名称:一定是“Oracle”,这是固定写法,只要是链接Oracle数据库,都得这么写

    * 数据源:是你要链接的Oracle数据库的库名。在我的Oracle数据库软件里,建立了一个名为ora的数据库,我想链接到这个名为ora的数据库,所以我这里的“数据源”填的就是“ora”,大家可以根据自己的实际情况来填写。

    填好以后不要急着去点击“确定”按钮。

  3. 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的链接服务器的更多相关文章

  1. 在64位SQL Server中创建Oracle的链接服务器 Link Server

    有时候我们希望在一个sqlserver下访问另一个sqlserver数据库上的数据,或者访问其他oracle数据库上的数据,要想完成这些操作,我们首要的是创建数据库链接. 数据库链接能够让本地的一个s ...

  2. sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)

    由于业务逻辑的多样性,经常得在sql server中查询不同数据库中数据,这就产生了分布式查询的需求 现我将开发中遇到的几种查询总结如下: 1.access版本 --建立连接服务器 EXEC sp_a ...

  3. 【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据

    从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件, 需要用不同的驱动程序来实现. 在64位的机 ...

  4. 【SQL Server数据迁移】32位的机器:SQL Server中查询ORACLE的数据

    从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件,需要用不同的驱动程序来实现. 在32位的机器 ...

  5. 64位sql server 如何使用链接服务器连接Access

    原文:64位sql server 如何使用链接服务器连接Access 测试环境 操作系统版本:Windows Server 2008 r2 64位 数据库版本:Sql Server 2005 64位 ...

  6. sql server中创建链接服务器图解教程

    转自sql server中创建链接服务器图解教程 1.展开服务器对象-->链接服务器-->右击"新建链接服务器" 注意:必须以数据库管理员身份登录(通常也就是sa帐号) ...

  7. SQL Server 2008创建oracle链接服务器(心得)

    操作系统是32位的情况下,曾经没费太多时间创建好了到oracle的链接服务器.主要要点就是: 1.安装oracle精简客户端.当时我用的是版本比较低的“oracle9i310-客户端简化版”,安装好了 ...

  8. 当您尝试从 64 位 SQL Server 客户端上运行分布式的查询到链接的 32 位 SQL Server 时,您可能会收到一条错误消息

    如何处理64位SQL访问32位SQL执行脚本语句问题 链接服务器"SERVER_YBJK"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 &qu ...

  9. SQL Server中创建sde数据库

    在ArcCatalog或者ArcMap中打开ArcToolBox工具箱. 在工具箱中,找到创建企业级地理数据库工具,依次为数据管理工具→地理数据库管理→创建企业级地理数据库,如图所示. 双击打开创建企 ...

随机推荐

  1. sublime3+quick3.5 完整使用教程

    sublime3+quick3.5 完整使用教程 Administrator   2015-07-15 14:43:08 1. 安装Sublime3   2. 注册Sublime3     Help- ...

  2. jenkins使用git SCM时changelog乱码(Jenkins部署在Linux上,任务在Windows Slave上构建)

    问题原因 changelog的获取方式(git-client插件): 首先调用git whatchanged命令,读取输出字节流(UTF-8编码的Commit Message). 将字节流解码为字符串 ...

  3. mysql 锁-比较详细、深入的介绍

    详见:http://www.cnblogs.com/chenpingzhao/archive/2015/12/13/5041967.html

  4. 贪吃蛇的java代码分析(三)

    代码剖析 在上一篇文章中,我们完成了贪吃蛇部分代码的构造.回头审视我们写的代码与思路,会发现我们遗漏了一个重要的地方,那就是:贪吃蛇的自身移动.想必大家都知道,贪吃蛇自身是会自己移动的,并且会跟随你的 ...

  5. Sublime Text的心得经验。 全面

    Sublime Text的心得经验.jikeytang/sublime-text · GitHub

  6. canvas简单处理图片(反色处理)

    用canvas可以简单地处理图像,比如切割 灰色处理等,今天记下的是图像的反色处理. <!DOCTYPE html> <html> <head> <meta ...

  7. [flex布局]-flex教程

    简介:2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. Flex布局是什 ...

  8. OC的类别(分类)和拓展

    一.分类: 1.适用范围      当你已经封装好了一个类(也可能是系统类.第三方库),不想在改动这个类了,可是随着程序功能的增加需要在类中增加一个方法,这时我们不必修改主类,只需要给你原来的类增加一 ...

  9. LINUX端口查看

    e切依燃   LINUX端口查看 查看文件数 ls | wc -w lsof -i:80

  10. ROW_NUMBER() OVER() 用法

    语法 ROW_NUMBER ( ) OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause ) 参数 PARTITIO ...