zoukankan      html  css  js  c++  java
  • 在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. 1

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

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

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

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

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

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

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

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

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

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

      再点击左侧“选项页”里的“安全性”,右边选择最下面的“使用此安全上下文建立连接”,然后在下面输入连接到ora(根据自己的实际情况来更改)数据库的用户名和密码。再点击“确认”按钮,至此,一个明文ORA_TEST的链接服务器就建好了。

      在64位SQL Server中创建Oracle的链接服务器
      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”的实例的解决办法》。

  • 相关阅读:
    Spring学习总结之高级装配
    Spring学习总结之装配bean
    NS2安装过程中环境变量设置的问题(ns-2.35)
    =======================分割线======================================
    java的内存管理机制
    Python之面向对象编程
    Python之列表生成式
    Python之函数的参数
    Git基础级介绍
    第四次作业——个人作业——软件案例分析
  • 原文地址:https://www.cnblogs.com/wayne-ivan/p/4691092.html
Copyright © 2011-2022 走看看