之前写过一篇关于SQL Server 访问MySQL数据库的文章,最近正好又遇到需要访问Oracle 的情况,将配置过程记录下来也供大家参考。

准备工作

事先在需要访问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 数据库。

创建Linked Server

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

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

Linked server: 填写Linked Server 名称

Provider:选择Microsoft OLE DB Provider for Oracle

Product name:填写Oracle

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

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

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

访问Oracle

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

SELECT*FROMLINKED_NAME..ACCOUNT_NAME.TABLE_NAME;

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

SELECT*FROMORASVR..ADMIN.JOBS;

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

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

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

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

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

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

原文标题:通过SQL Server 2008 访问Oracle 10g

链接:http://www.cnblogs.com/gnielee/archive/2010/09/07/access-oracle-from-sqlserver.html

【编辑推荐】

【责任编辑:彭凡 TEL:(010)68476606】

点赞 0

oracle数据库访问sqlserver2008,透过SQL Server 2008访问Oracle 10g的配置方法相关推荐

  1. sql server 2008连接oracle操作步骤详细记录,SQL Server 2008连接Oracle操作步骤详细记录...

    SQL Server Management Studio Express(简写SSMS) SQL Server配置管理器:SQL Server Configuration Manager(简写SSCM ...

  2. 通过SQL Server 2008 访问Oracle 10g

    之前写过一篇关于SQL Server 访问MySQL 数据库的文章,最近正好又遇到需要访问Oracle 的情况,将配置过程记录下来也供大家参考. 准备工作 事先在需要访问Oracle 数据库的主机上完 ...

  3. 通过SQL Server 2008 访问MySQL

    在公司中经常会遇到部署多种数据库环境的情况,对于开发人员来说经常在不同数据库之间转换确实有些繁琐,本篇将介绍从SQL Server 操作MySQL 数据库的方法. 数据库测试环境 1. SQL Ser ...

  4. 把Oracle数据库移植到Microsoft SQL Server 7 0

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 把Ora ...

  5. SQL Server 2008 无法删除用户的解决方法

    一个数据库,运行在SQL Server 2008下,数据库用户无法删除,在删除时提示"数据库主体在该数据库中拥有架构,无法删除". 原因很简单,就是由于此用户在数据库中拥有某些架构 ...

  6. SQL Server 2008 评估期已过解决方法

    SQL Server 2008 评估期已过解决方法 SQL Server 2008有180天的试用期,过期后会提示"评估期已过"的提示. 1.进入SQL Server安装中心: 2 ...

  7. SQL SERVER 2008不能修改表的解决方法(增加字段、修改字段名)(未解决)

    SQL SERVER 2008不能修改表的解决方法(增加字段.修改字段名)(未解决) 参考文章: (1)SQL SERVER 2008不能修改表的解决方法(增加字段.修改字段名)(未解决) (2)ht ...

  8. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份

    一  Oracle数据库查看表空间sql语句 1.oracle查看表空间当前用户 SQL>  select  username,default_tablespace  from user_use ...

  9. sql server 2008连接oracle操作步骤详细记录,SQLServer连接Oracle详细步骤

    我们知道SQL Server和Oracle其实很多原理都类似.特别是一些常用的SQL语句都是按照标准来.所以它们也可以有一定的互操作性的.这里 我们知道SQL Server和Oracle其实很多原理都 ...

最新文章

  1. leetcode-25 K个一组反转链表
  2. php 云片网对接,php调用云片网接口发送短信的实现方法
  3. HashMap、HashTable、ConcurrentHashMap、HashSet区别 线程安全类
  4. extjs中文字体在firefox和Adobe Air里显示偏小的问题
  5. python 图像计算方位角
  6. 8.2-3 partprobe、tune2fs
  7. 互联网商业模式:增值还是减值?
  8. latex在texstudio中编译tex文件不显示攻读硕士学位期间取得的成果
  9. 使用标准库函数对象的例子
  10. c语言boon类型函数,函数式编程functional programming的特点
  11. linux获取url中文内容_SEO站内内链优化 – URL优化,提高页面权重
  12. 跟我学习dubbo-ZooKeeper注册中心安装(2)
  13. Rosenbrock函数的梯度与海瑟矩阵
  14. 工业物联网解决方案,工业物联网原创监控平台如何搭建
  15. 万字干货,分布式数据库 HBase 中文入门指南
  16. 如何清除html的浏览器缓存,如何清除浏览器缓存,小编教你怎么清除浏览器缓存...
  17. 什么是晶圆CMP的ILD?
  18. 用C语言编写一个电话簿管理系统
  19. 浅谈Serverless之uniCloud
  20. FactoryBean的使用~

热门文章

  1. arm linux 进程页表,linux-kernel – ARM Linux页表项格式 – 未使用的位?
  2. 网页中设定表格边框的厚度的属性_网页试题
  3. free mybatis 不生效_2019BATJ面试题汇总详解:MyBatis+MySQL+Spring+Redis+多线程
  4. 可视化计算java_Java可视化计算器
  5. 5 压缩上传图片_推荐一个干净纯粹的网站,专注图片压缩、pdf相关操作
  6. 计算机非211研究生,这所大学不是211,但“计算机”实力远超985,快来看看
  7. 为什么博图中放置按下按钮无反应_为什么点击按钮没反应呢?
  8. 深度学习之卷积神经网络(8)BatchNorm层
  9. Cache超清晰逻辑详解----不一致性(待更)
  10. python 文件时间戳_调整目录文件时间戳脚本 python