之前写过一篇关于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 * 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 数据库,并做相应的数据调整。

转载于:https://www.cnblogs.com/qanholas/archive/2013/01/10/2854826.html

通过SQL Server 2008 访问Oracle 10g相关推荐

  1. oracle数据库访问sqlserver2008,透过SQL Server 2008访问Oracle 10g的配置方法

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

  2. 从Sql server 2000 到 Oracle 10g数据库迁移数据类型转化

    2010-01-12 从Sql server 2000 到 Oracle 10g数据库迁移数据类型转化 文章分类:数据库 SqlServer 2k转换为Oracle 10g 列名 SqlServer数 ...

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

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

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

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

  5. 通过SQL Server 2008 访问MySQL

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

  6. 应用程序的数据库从Sql Server迁移到Oracle

    应用程序的数据库从Sql Server迁移到Oracle 迁移案例一:数据库: Sql Server 2008到Oracle 9i 工具: Sybase PowerDesiner 12 试用版, PL ...

  7. 对比 SQL Server 2005 和 Oracle

    在 Microsoft Windows Server 上运行的 SQL Server 2005,为企业级关系数据库和分析解决方案提供了一个平台,在安全.可用性.与 Visual Studio 的整合度 ...

  8. swisssql-sql server to oracle,Sql Server移植到Oracle之Migration Workbench

    移植SQL server数据库对象到Oracle的操作说明 移植之平台和相关工具 OS:Windows Vista DBMS:Sql Server 2005 Plus Oracle 10g for V ...

  9. sql server 2008数据导入Oracle方法

    试了几种sql server数据导入Oracle的方法,发现还是sql server 的导入导出工具最好使.使用方法很简单,照着向导做就可以.不过使用中需要注意以下几点: 系统盘需要足够大.因为SSI ...

最新文章

  1. (转)JS正则表达式元字符
  2. Ant和Junit使用的一些问题
  3. VTK:模型之Bottle
  4. step4 . day6 线程与线程的创建
  5. mysql sqlsugar_.net core +mysqlSugar(最为简单的增删改查)
  6. Java 蓝桥杯 字母图形
  7. 记录一下不能使用let时如何创建局部变量(使用立即执行函数)
  8. 二叉树 -- 5.1.1 Binary Tree Level Order Traversal -2 -- 图解
  9. git log 查看自己修改的行数_Git 笔记 day2
  10. 单片机原理及应用姜志海pdf_《单片机原理及应用(C语言版)》郭军利,祝朝坤,张凌燕【pdf】...
  11. flex+java项目创建_创建Flex 4和Java Web应用程序
  12. 【Andrew Gelman多元统计】(基于R)
  13. 8-四平方和定理(拉格朗日定理)
  14. 后台管理系统导出Excel表格的方法
  15. android 打 aab包本地测试注意事项
  16. Vollendet und in alle Einzelheiten durchgebildet
  17. component传值问题
  18. 计算机课是怎样查出勤的,基于计算机视觉技术的课堂自动考勤系统研究
  19. Android 多种简单的弹出框样式设置
  20. 我所知道的 11 条领导力(Ping++ CEO 金亦冶)

热门文章

  1. 刷脸考勤,重新定位校园管理
  2. VS Code的golang开发配置 之 代码提示
  3. Java中什么是匿名对象,空参构造方法输出创建了几个匿名对象,属性声明成static...
  4. 两个文件比较之comm命令
  5. 【Todo】Java8新特性学习
  6. 交叉编译HTOP并移植到ARM嵌入式Linux系统
  7. 2013 ACM/ICPC Asia Regional Changsha Online - C
  8. 使用jquery操作iframe
  9. Linux系统目录结构及主要内容
  10. iptables规则的增删改查