`
yunzhongxia
  • 浏览: 647315 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQLSERVER2000链接Oracle

阅读更多

      项目开发中也许会遇到这样的场景:一个系统是vb做的用的是sqlserver数据库,一个是java做的用的是oracle数据库,两个系统之间要实现一些数据的交互。异构数据库(oracle称为透明网关)可以解决这种问题,原理是在数据库A上建立一个链接服务器访问数据库B。本篇主要讲解SQLSERVER2000链接Oracle数据库,操作步骤如下:

      1.安装oracle9i客户端或者服务器,oracle企业管理器中创建远程数据库。

         host:192.168.1.10 
         sid:hjn
        端口:1521
        名称:HJN_192.168.1.10 

 

      2.安装sqlserver2000并打上sp4以上的补丁。

         查看SQL SERVER 2000是否打过SP4的补丁 其实只要查询版本号就知道。
         在查询分析器中输入
         select @@version
         或者输入 print @@version

         如果是安装过SP4的补丁。应该是下面的信息:
         Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)
         May 3 2005 23:18:38
         Copyright (c) 1988-2003 Microsoft Corporation
         Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

       

        安装sqlserver或者sp4补丁时很有可能提示文件挂起提示,解决办法如下:

        打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
        中找到PendingFileRenameOperations项目,并删除它.

 

     3.由于sqlserver的链接服务器对应的是oracle8版本,因此需要修改注册表信息。

        [HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC]
        AllowonlySecureRpcCalls=0
        TurnoffRpcSecurity=1

        [HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\MSDTC\MTxOCI]
        "OracleXaLib"="oraclient9.dll"
        "OracleSqlLib"="orasql9.dll" 
        "OracleOciLib"="oci.dll"

    

     4.在sqlserver2000中建立oracle链接服务器。

       

        打开企业管理器,在安全性下找到链接服务器。新建链接服务器。

 

      

 

       链接服务器名称为MYORA,提供程序名称为Microsoft OLEB DB Provider for Oracle

       产品名称为ORACLE,数据库为刚才新建的远程数据库sid,链接字符串也是hjn。

       注意名称必须是ORACLE并且是大写。

 

    

      

 

       安全性选择不使用安全上下文,输入oracle的用户名和密码。

 

       

 

        在排序规则兼容打上勾,使用远程排序规则上也打上勾。

       

       

      

 

     5.  解决事务问题
          开始——程序——管理工具——组件服务;
          组建服务——计算机——我的电脑;
          右键属性——msdtc标签——安全性配置
          把所有能选的都选上(可能不用都选); 
          确定; 

     6. 解决连接中断问题
         修改hosts文件 (ip 计算机名)
         C:\WINDOWS\system32\drivers\etc
         192.168.0.11 test

    

     7.SQL的写法有两种
        a)使用T-SQL语法:
            SELECT * FROM LNK1..用户名.表名--注意用户名称,表名称要大写。


        b)使用PLSQL语法:
           select * from openquery(LNK1,'select * from 用户名.表名')

 

           update openquery(linked1, 'select ssn from testlinked where ssn=2') set ssn=ssn + 1


           insert openquery(linked1, 'select ssn from testlinked where 1=0') values (1000)


           delete openquery(linked1, 'select ssn from testlinked where ssn>100')


           第二种访问方式比第一种约快50%;第二种访问方式跟直连ORACLE的速度相当;
           第一种访问方式可能会导致一些意外错误,如:该表不存在,或者当前用户没有访问该表的权限。
           如果需要访问的column中使用没有精度的数据类型,这两种查询方式都可能会报错,这是ORACLE的BUG,
            无法修正,只能通过查询语句的特殊处理规避这一问题:
           OLE DB 提供程序 'OraOLEDB.Oracle' 为列提供的元数据不一致。执行时更改了元数据信息。

   

    问题与BUG。

           1.oracle9i的varchar2长度大于256时就会出现sqlserver2000访问死掉的现象。这个问题我还不知道具体的原因,但是oracle10g是没有问题的。

           2.oracle中的clob字段只能通过openquery访问。

           3.最好用oracle简单的数据类型。

          

  • 大小: 25.3 KB
  • 大小: 23.8 KB
  • 大小: 21.4 KB
  • 大小: 28.9 KB
0
0
分享到:
评论

相关推荐

    sqlserver2000连接oracle9i的方法

    sqlserver2000连接oracle9i的方法

    sql_server连接Oracle方法(最全)

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

    sql server 2000访问oracle数据库

    SQL Server 2000提供了“开放数据库连接”(ODBC)和“数据库链接”(Linked Server)两种方式来实现这一功能。ODBC是通过数据源管理器创建一个指向Oracle数据库的ODBC数据源,然后在SQL Server中使用SQL Server ODBC...

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

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

    SQLSERVER2000连接到ORACLE

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

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

    NULL, -- 为每个登陆 SQLSERVER 的用户使用此链接服务器, 则写用户名 'SQLSA', -- 帐号 (oracle) 'chmti'; -- 密码 ``` - 设置 RPC 和 RPC_OUT 选项以支持远程更改分布式事务。 ```sql exec sp_serveroption ...

    SqlServer2008访问Oracle数据库

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

    网络环境下连接SQL Server和Oracle 19c的方法.docx

    在网上看了很多资料,感觉不是很仔细,很多同学遇到这个问题,就详细说明一下在局域网环境下Navicat连接SQL Server和Oracle 19c的方法,PL/SQL Developer连接Oracle

    sqlserver连接oracle

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

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

    通过Oracle通用连接访问SQL Server数据库的方法为IT领域提供了一种跨数据库系统进行数据交互的有效途径。这种方法主要依赖于Oracle数据库的异构服务功能,允许用户从Oracle环境中直接查询或操作其他类型数据库(如...

    SQLServer2008R2与Oracle11gR2互连

    在SQLServer中连接Oracle数据库可以通过设置Linked Server来实现。 ##### 4.1 配置Client - 在SQLServer的主机上安装Oracle客户端后,可以在数据源中看到Oracle的ODBC驱动。 - 注意客户端的版本与操作系统位数相...

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

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

    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 位操作...

    Sqlserver转Oracle工具

    连接sqlserver数据库后选择相应的数据库-数据表以及目标数据库(目前只有oracle),可以将sqlserver转换成oracle数据,有两种方式,点击转换sql按钮,可以生成sql语句,复制语句到oracle里执行。第二种是连接oracle...

    sqlserver2008链接ORACLE服务器驱动.rar

    本资源"sqlserver2008链接ORACLE服务器驱动.rar"正是为了解决这个问题,提供了SQL Server 2008连接到Oracle数据库所需的驱动程序和安装指南。 首先,我们要明白的是,SQL Server 2008本身并不直接支持Oracle数据库...

    实现 Oracle 连接 SQL Server

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

    sqlserver-oracle 数据类型对照

    - `CONCAT`和`+`运算符在Oracle和SQL Server中都用于字符串连接。 - `LOWER`和`UPPER`分别用于将字符串转为小写和大写。 - `LPAD`、`LTRIM`和`RTRIM`分别用于在字符串左侧填充、去除左侧空白和去除右侧空白。 - ...

    oracle数据库导入到SQL server.docx

    首先,需要安装oracle_11G_client以便连接Oracle数据库。在安装过程中,需要选择语言,包括简体中文、英文和繁体中文。如果Oracle数据库的内容是繁体的,需要使用简体Windows 10系统安装,并添加繁体语言。 二、...

    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数据库导入Oracle

    "SQLServer数据库导入Oracle详解" 在数据库管理中,数据迁移是一个非常重要的步骤,特别是在不同数据库管理系统之间,例如从SQL Server到Oracle。下面我们将详细介绍如何将SQL Server数据库导入到Oracle中。 首先...

Global site tag (gtag.js) - Google Analytics