项目开发中也许会遇到这样的场景:一个系统是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
分享到:
相关推荐
sqlserver2000连接oracle9i的方法
"SQL Server 连接 Oracle 方法" SQL Server 连接 Oracle 方法是数据库管理系统中的一个重要话题。本文将详细介绍如何在 SQL Server 中连接 Oracle 数据库,并解决在连接过程中可能出现的问题。 安装 Oracle 客户端...
SQL Server 2000提供了“开放数据库连接”(ODBC)和“数据库链接”(Linked Server)两种方式来实现这一功能。ODBC是通过数据源管理器创建一个指向Oracle数据库的ODBC数据源,然后在SQL Server中使用SQL Server ODBC...
在 SQL Server 中,我们可以创建一个链接服务器,以便连接到 Oracle 数据库。下面是一个示例代码: ```sql EXEC sp_addlinkedserver @server = 'GE160', @srvproduct = 'Oracle', @provider = 'MSDAORA', @datasrc ...
本文将详细阐述如何在SQL Server 2000中建立到Oracle数据库的连接,以便从SQL Server中读取Oracle中的数据。 首先,我们需要了解SQL Server 2000的数据链接服务器功能,这是实现跨数据库连接的关键。数据链接服务器...
NULL, -- 为每个登陆 SQLSERVER 的用户使用此链接服务器, 则写用户名 'SQLSA', -- 帐号 (oracle) 'chmti'; -- 密码 ``` - 设置 RPC 和 RPC_OUT 选项以支持远程更改分布式事务。 ```sql exec sp_serveroption ...
SqlServer2008通过Oracle provider for OLEDB访问远程Oracle数据库 包括链接服务器环境安装、链接服务器创建、远程建表、修改表,增删改查数据,创建、执行带参与无参存储过程的方法等,资料为作者参考网络资料整理...
在网上看了很多资料,感觉不是很仔细,很多同学遇到这个问题,就详细说明一下在局域网环境下Navicat连接SQL Server和Oracle 19c的方法,PL/SQL Developer连接Oracle
SQL Server 作为链接服务器连接 Oracle 数据库,需要配置 Windows 的 ODBC 数据源和 SQL Server 2000 中的连接服务器。下面将详细介绍配置过程和连接方法。 配置 Windows 的 ODBC 数据源 在 Windows 操作系统中,...
通过Oracle通用连接访问SQL Server数据库的方法为IT领域提供了一种跨数据库系统进行数据交互的有效途径。这种方法主要依赖于Oracle数据库的异构服务功能,允许用户从Oracle环境中直接查询或操作其他类型数据库(如...
在SQLServer中连接Oracle数据库可以通过设置Linked Server来实现。 ##### 4.1 配置Client - 在SQLServer的主机上安装Oracle客户端后,可以在数据源中看到Oracle的ODBC驱动。 - 注意客户端的版本与操作系统位数相...
网上基本找不到,sqlserver2012版本链接oracle乱码问题解决实测版。
"Windows Server 2008 内 SQL Server 建立 Linked Server 连接 Oracle" 在 Windows Server 2008 64 位操作系统中,使用 SQL Server 建立 Linked Server 连接 Oracle 数据库是一种常见的需求。然而,在 64 位操作...
连接sqlserver数据库后选择相应的数据库-数据表以及目标数据库(目前只有oracle),可以将sqlserver转换成oracle数据,有两种方式,点击转换sql按钮,可以生成sql语句,复制语句到oracle里执行。第二种是连接oracle...
本资源"sqlserver2008链接ORACLE服务器驱动.rar"正是为了解决这个问题,提供了SQL Server 2008连接到Oracle数据库所需的驱动程序和安装指南。 首先,我们要明白的是,SQL Server 2008本身并不直接支持Oracle数据库...
### 实现 Oracle 连接 SQL Server 的方法与步骤 在 IT 领域,数据库间的交互对于实现数据共享和业务协同至关重要。Oracle 和 SQL Server 分别作为市场上两款主流的数据库管理系统,它们之间的连接需求十分常见。...
- `CONCAT`和`+`运算符在Oracle和SQL Server中都用于字符串连接。 - `LOWER`和`UPPER`分别用于将字符串转为小写和大写。 - `LPAD`、`LTRIM`和`RTRIM`分别用于在字符串左侧填充、去除左侧空白和去除右侧空白。 - ...
首先,需要安装oracle_11G_client以便连接Oracle数据库。在安装过程中,需要选择语言,包括简体中文、英文和繁体中文。如果Oracle数据库的内容是繁体的,需要使用简体Windows 10系统安装,并添加繁体语言。 二、...
本文将详细介绍如何在SQL Server上安装Oracle Provider for OLE DB驱动,以便创建与Oracle数据库的连接服务器。 首先,Oracle Provider for OLE DB是一种数据提供程序,它允许SQL Server或其他支持OLE DB的应用程序...
"SQLServer数据库导入Oracle详解" 在数据库管理中,数据迁移是一个非常重要的步骤,特别是在不同数据库管理系统之间,例如从SQL Server到Oracle。下面我们将详细介绍如何将SQL Server数据库导入到Oracle中。 首先...