透过SQL Server 2008访问Oracle 10g的配置方法

数据库 SQL Server
通过SQL Server 2008访问Oracle 10g数据库,这一方法主要是方便数据库的调整。本文将详细介绍该配置方法。

之前写过一篇关于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 时将会使用到。

  1. ORADB =  
  2.   (DESCRIPTION =  
  3.      (ADDRESS = (PROTOCOL = TCP)(HOST = HOSTIP)(PORT = 1521))  
  4.      (CONNECT_DATA = (SID = DBNAME))  
  5.   ) 

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 数据库了,查询语法如下:

  1. SELECT * FROM LINKED_NAME..ACCOUNT_NAME.TABLE_NAME; 

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

  1. SELECT * FROM ORASVR..ADMIN.JOBS; 

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

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

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

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

  1. SELECT * FROM OPENQUERY(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

【编辑推荐】

  1. SQL Server 2000删除实战演习
  2. SQL Server存储过程的命名标准如何进行?
  3. 卸载SQL Server 2005组件的正确顺序
  4. 对SQL Server字符串数据类型的具体描述
  5. SQL Server数据类型的种类与应用

 

责任编辑:彭凡 来源: 博客园
相关推荐

2011-08-17 14:41:12

Oracle 10g透SQL Server

2011-08-17 15:13:47

Oracle 10g透SQL Server

2011-08-17 16:28:31

Windows SerOracle 10g

2010-04-14 10:03:52

SQL Server

2011-08-30 14:40:46

SQL Server Oracle 10gC#源码程序

2011-04-15 09:53:37

Oracle 10gSQL优化

2009-10-20 18:32:25

Oracle 10g

2011-07-05 16:18:14

DataGuardSTANDBY

2010-04-14 16:09:51

Oracle 10g归

2010-11-10 10:27:58

访问SQL Serve

2011-07-19 13:28:31

Oracle 10g

2011-07-27 14:22:41

Oracle 10g DBA账户

2011-08-23 18:04:16

Oracle 10g数据泵

2010-04-26 11:01:26

Oracle 10g

2010-03-30 19:31:25

Oracle 10g

2011-05-13 11:21:51

linuxoracle 10g安装

2011-03-29 09:56:48

Oracle数据库10SQL

2011-03-25 16:10:58

oraclenagios

2011-08-09 18:15:24

Oracle 10g查找数据

2010-02-05 09:06:14

Ubuntu Orac
点赞
收藏

51CTO技术栈公众号