zoukankan      html  css  js  c++  java
  • 通过SQL Server 2008 访问Oracle 10g

    准备工作

    事先在需要访问Oracle 数据库的主机上完成以下工作:

    1. 安装SQL Server 数据库:SQL Server 2008 R2 Express

    2. 安装Oracle 客户端访问程序:Oracle 10g Client

    3. 配置Oracle 客户端tnsnames.ora 文件,其中需要注意文件中的数据库别名“ORADB”,该名称在下文创建Linked Server 时将会使用到。

    ORADB =
      (DESCRIPTION =
         (ADDRESS = (PROTOCOL = TCP)(HOST = HOSTIP)(PORT = 1521))
         (CONNECT_DATA = (SID = DBNAME))
      )

    4. 确保主机可以通过SQLPlus 访问远程Oracle 数据库。

    sqlplus

    创建Linked Server

    打开SQL Server Management Studio 进入Server Objects 列表,右键Linked Servers,点击“New Linked Server...”

    new

    在General 界面中填写下面几项内容:

    Linked server: 填写Linked Server 名称

    Provider:选择Microsoft OLE DB Provider for Oracle

    Product name:填写Oracle

    Data source:填写上面提到的数据库别名ORADB

    input

         点击Security ,点选“Be made using this security context”,假设Oracle 数据库有一个名称为admin 的用户ID,在“Remote login”中输入访问帐号,点击“OK”结束创建。

    account

    完成后Linked Servers 中会看到刚创建的Oracle 数据库链接。

    Done

    访问Oracle

    接下来就可以在SQL Server 端访问Oracle 数据库了,查询语法如下:

    SELECT * FROM LINKED_NAME..ACCOUNT_NAME.TABLE_NAME;

    结合上面的实例,假如要查询admin 用户下jobs 表的内容,则相应SQL 语句应为:

    SELECT * FROM ORASVR..ADMIN.JOBS;

         使用上述方法进行数据查询时,若Oracle 表有NUMBER 列时会出现转化错误,这时可以将NUMBER 类型转化为字符串(也有将该列属性修改成NUMBER(10),为NUMBER 列设定好位数)。考虑到View 查询等因素个人感觉还是转为字符串的方式较为通用。

         当然如果查询的列过多,每个NUMBER 列都转为VARCHAR 的话工作量也的确不小,这时最好的方法就是使用OPENQUERY 函数:

    SELECT * FROM OPENQUERY(LINKED_NAME,'SELECT * FROM TABLE_NAME');

    按照OPENQUERY 的语法上面SQL 语句应变为:

    SELECT * FROM OPENQUERY(ORASVR,'SELECT * FROM JOBS');

    这样我们就可以在SQL Server 端方便的访问Oracle 数据库,并做相应的数据调整。

    转载:
    作者:李敬然(Gnie)
    出处:{GnieTech}http://www.cnblogs.com/gnielee/
    天善智能 成立于2011年11月,由3位从事BI商业智能开发多年的草根码农组成 ,致力于推动BI技术在中国的发展,帮助更多的朋友掌握BI技术!官方博客:http://blog.tianshansoft.com
  • 相关阅读:
    linux 串口调试总结
    linux 环境变量的设置方法
    linux 内核的配置和编译
    linux 串口应用程序的编写指南
    linuxdifff 和 patch 的使用指南
    linux shell 的学习随笔
    特性阻抗和频率有关吗?
    linux source和export命令的使用
    关于SI设计与SI仿真的一点浅见
    LINUX下的tty,console与串口分析
  • 原文地址:https://www.cnblogs.com/tianshansoft/p/2355394.html
Copyright © 2011-2022 走看看