`

(转)SQLServer链接服务器至Oracle

 
阅读更多

1.         我方服务器必须安装msdtc服务,并进行相应配置。

2.         我方服务器必须安装oracle client,这个要对应中心站oracle版本的客户端。

3.         我方服务器必须安装Oracle Services For Microsoft Transaction Server [版本]

   Oracle Provider for OLE DB [版本]

2个可以在Oracle官方网站下载

[http://www.oracle.com/technology/software/tech/windows/odpnet/index.html]

此文件为分布式事务必须的插件。

4.         Oracle给我们分配一个Oracle的用户名和密码,具有写入/读取表的权限。

5.         在我方系统的SQLServer服务器上建立链接服务器,指向Oracle数据库,链接服务器访问接口必须为[Oracle Provider for OLE DB](否则无法启动分布式事务)

 

1.         在写存储过程向oracle数据库中 insertdeleteupdate的时候,一定要加上

SET XACT_ABORT ON

此为开启镶嵌事务标志,否则分布式事务会失败。

2.         对于从oraclesqlserverselect数据的时候没有必要加入事务范围内,会锁表浪费时间。

3.         查询语句格式为:

SELECT * FROM openquery(ORA_DBENSIS, 'select ID from TEST_TRANS')

或者

SELECT * FROM ORA_DATABASE..TEST_USER.TEST_TRANS

用户名TEST_USER、表名TEST_TRANS必须大写

4.         插入语句格式为:

INSERT openquery(ORAENSIS, 'select ID from TEST_TRANS where 1=0')

values (1)

在SQL SERVER中访问ORACLE表的方法

在SQL SERVER中,能否访问ORACLE表,进行查询操作呢?答案无疑是可以的,下面就为你介绍在SQL SERVER中访问ORACLE表的实现方法,供您参考。

一、配置

方法一:通过oracle的sql*net客户端与Oracle数据库直接相连

1、在SQL SERVER所在服务器上安装Oracle客户端,并配置好客户端,能用sqlplus
工具连通Oracle数据库
2、打开ENTERPRISE MANAGER,安全性>链接服务器,右键选择“新建链接服务器”
3、“链接服务器”->ORCL (为链接服务器取名字)
选择“其它数据源”,在“提供程序名称” 栏中选择“Microsoft OLE DB Provider
for Oracle”
4、在“产品名称”->“Oracle”  “数据源”->“ora9i”(此处填tnsnames.ora中的服务名)
在“提供程序字符串”->“MADAORA”
5、切换到“安全性”一页中,在”本地登录“中加入oracle数据库的用户名,选择“用此安全
上下文进行”,填入oracle数据库登录的用户和密码
6、切换到“服务器选项”一页中,将所有选项都选上
7、最后点击“确定”完成设置
8、在查询分析器中使用创建好的链接服务器ORCL

SELECT * FROM ORCL..SMS.EMP
其中ORCL是链接服务器名,SMS是Oracle数据库的用户名,EMP是表名

 

方法二:通过ODBC与Oracle数据库相连

1、在SQL SERVER所在服务器上安装Oracle客户端,并配置好客户端,能用sqlplus
工具连通Oracle数据库
管理工具>数据源中创建一个系统DSN
2、打开ENTERPRISE MANAGER,安全性>链接服务器,右键选择“新建链接服务器”
3、“链接服务器”->ORCL (为链接服务器取名字)
选择“其它数据源”,在“提供程序名称” 栏中选择“Microsoft OLE DB Provider
for ODBC”
4、在“产品名称”->“Oracle”  “数据源”->“ora9i”(此处填创建的系统DSN名)
在“提供程序字符串”->“MADAORA”
5、切换到“安全性”一页中,在”本地登录“中加入oracle数据库的用户名,选择“用此安全
上下文进行”,填入oracle数据库登录的用户和密码
6、切换到“服务器选项”一页中,将所有选项都选上
7、最后点击“确定”完成设置
8、在查询分析器中使用创建好的链接服务器ORCL
 SELECT * FROM ORCL..SMS.EMP
 其中ORCL是链接服务器名,SMS是Oracle数据库的用户名,EMP是表名

二、关于查询中不能使用到索引的问题

在SQLSERVER中查询一个oracles上的表:
SELECT * FROM ORCL..SMS.EMP WHERE NAME = 'TOM'
EMP有几百万数据,并且在NAME上建了索引,发现查询非常慢,通过查询oracle上的
视图v$sqlarea,发现WHERE条件根本没有传到oracle服务器上,后来通过几次测试
后总算解决了该问题,总结如下:

当使用链接服务器访问ORACLE表,查询oracle的表时,where子句中字段如果是number类型,则该
where条件不会传到oracle服务器;

如果是char类型,则可以传到oracle服务器上,但是必须在创建链接服务器时一定要
把选项"与排序规则兼容"选上,否则也不会传到oracle服务器上的;

分享到:
评论

相关推荐

    sql_server连接Oracle方法(最全)

    "SQL Server 连接 Oracle 方法" SQL Server 连接 Oracle 方法是数据库管理系统中的一个重要话题。本文将详细介绍如何在 SQL Server 中连接 Oracle 数据库,并解决在连接过程中可能出现的问题。 安装 Oracle 客户端...

    SQLServer链接服务器访问Oracle[收集].pdf

    SQL Server 链接服务器访问 Oracle 本文档介绍了如何使用 SQL Server 链接服务器访问 Oracle 数据库,涉及到测试环境说明、创建 SQL Server 链接服务器、安装访问接口、配置注册表、配置 Oracle 客户端等方面的内容...

    SQL SERVER连接oracle数据库几种方法

    在 SQL Server 中,我们可以创建一个链接服务器,以便连接到 Oracle 数据库。下面是一个示例代码: ```sql EXEC sp_addlinkedserver @server = 'GE160', @srvproduct = 'Oracle', @provider = 'MSDAORA', @datasrc ...

    sqlserver连接oracle

    SQL Server 作为链接服务器连接 Oracle 数据库,需要配置 Windows 的 ODBC 数据源和 SQL Server 2000 中的连接服务器。下面将详细介绍配置过程和连接方法。 配置 Windows 的 ODBC 数据源 在 Windows 操作系统中,...

    链接服务器-SQL Server连接Oracle(乱码配置,无需修改数据库编码)

    网上基本找不到,sqlserver2012版本链接oracle乱码问题解决实测版。

    SQLSERVER2000连接到ORACLE

    本文将详细阐述如何在SQL Server 2000中建立到Oracle数据库的连接,以便从SQL Server中读取Oracle中的数据。 首先,我们需要了解SQL Server 2000的数据链接服务器功能,这是实现跨数据库连接的关键。数据链接服务器...

    SQLServer2008R2与Oracle11gR2互连

    - **透明网关**:如果需要在非Windows平台上实现Oracle与SQLServer的连接,则需要安装透明网关。 ##### 3.1 Oracle Client 下载 Oracle客户端的下载地址如下: - [OracleClient]...

    实现 Oracle 连接 SQL Server

    ### 实现 Oracle 连接 SQL Server 的方法与步骤 在 IT 领域,数据库间的交互对于实现数据共享和业务协同至关重要。Oracle 和 SQL Server 分别作为市场上两款主流的数据库管理系统,它们之间的连接需求十分常见。...

    Windows Server 2008 内SQLServer建立Linked Server连接Oracle

    "Windows Server 2008 内 SQL Server 建立 Linked Server 连接 Oracle" 在 Windows Server 2008 64 位操作系统中,使用 SQL Server 建立 Linked Server 连接 Oracle 数据库是一种常见的需求。然而,在 64 位操作...

    SQLserver2012链接Oracle数据库操作说明.docx

    ### SQL Server 2012 连接 Oracle 数据库操作说明 #### 一、概述 在实际工作中,经常需要在不同的数据库系统之间进行数据交互。本文档将详细介绍如何使用 SQL Server 2012 实现与 Oracle 数据库的连接,并进行数据...

    SQL SERVER 安装ORACLE provider for OLE DB 的连接服务驱动

    本文将详细介绍如何在SQL Server上安装Oracle Provider for OLE DB驱动,以便创建与Oracle数据库的连接服务器。 首先,Oracle Provider for OLE DB是一种数据提供程序,它允许SQL Server或其他支持OLE DB的应用程序...

    SQLSERVER创建连接服务器

    通过以上内容,我们可以了解到SQL Server连接服务器不仅提供了强大的数据集成能力,还支持多种高级功能,如分布式事务处理等。正确地配置和使用连接服务器,可以帮助企业和开发人员构建更加高效、灵活的应用系统。

    SqlServer2008访问Oracle数据库

    SqlServer2008通过Oracle provider for OLEDB访问远程Oracle数据库 包括链接服务器环境安装、链接服务器创建、远程建表、修改表,增删改查数据,创建、执行带参与无参存储过程的方法等,资料为作者参考网络资料整理...

    SQL Server 如何通过链接服务器访问 Oracle

    2. Microsoft OLE DB Provider for Oracle:这是SQL Server连接到Oracle的桥梁,它是一个数据提供程序,使得SQL Server能够理解Oracle的语法和数据类型。 接下来,按照以下步骤创建链接服务器: 1. **配置Oracle...

    通过ORACLE通用连接访问SQLServer数据库的方法

    首先,为了能够从Oracle数据库连接到SQL Server数据库,我们需要在Oracle服务器上配置ODBC数据源。具体步骤如下: 1. **创建ODBC数据源**:使用Oracle服务器的操作系统提供的ODBC管理工具创建一个新的ODBC数据源,...

    oracle10g或11g通过dblink访问sql server数据库

    最后,在Oracle服务器(如192.168.1.141)上的`network/admin`目录下的`tnsnames.ora`文件中,需要添加相应的条目以便能够通过DBLink连接到SQL Server。例如: ```plaintext comm = (DESCRIPTION = (ADDRESS = ...

    oracle通过odbc建立dblink访问sqlserver数据库

    为了实现Oracle数据库与SQLServer数据库之间的数据交换,可以通过多种方式实现连接,其中一种较为简便的方法是利用Oracle提供的ODBC(Open Database Connectivity)机制来建立DBLink。这种方式相较于使用透明网关...

    oracle转SQL Server方法收集

    ### Oracle转SQL Server方法详解:运用SSMA工具实现高效迁移 #### 一、引言 随着企业业务的发展和技术栈的变化,数据库迁移成为了一个常见的需求。本文将详细介绍如何使用Microsoft SQL Server Migration ...

    sqlserver/oracle/mysql/等数据库驱动大全

    例如,一个使用ODBC的应用程序可以在不修改代码的情况下,只需更换不同的ODBC驱动,就可以连接到SQL Server、Oracle或MySQL数据库。 在实际开发中,使用ODBC驱动可能会涉及到以下知识点: 1. 数据源配置:每个ODBC...

Global site tag (gtag.js) - Google Analytics