`
cqh520llr
  • 浏览: 520187 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

ORACLE、SQLSERVER数据交互

 
阅读更多
Oracle与SQL Server的互连 

不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL SERVER里面叫做LINKED SERVER,通过ODBC实现与其它数据库的互联。

而ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway),当然之前ORACLE还采用过通用连接技术。目前ORACLE利用透明网关可以实现和SQL SERVER、SYBASE、DB2等多种数据库的互联。

透明网关的体系结构也很简单,在ORACLE和SQL SERVER之间使用ORACLE透明网关服务器实现互连互通,其中透明网关服务器可以与ORACLE或SQL SERVER数据库在同一台主机上,也可以是在独立的一台主机上。

下面是具体步骤,如有疑问欢迎和我联系,MSN: gototop_ncn@hotmail.com。

1、在SQL SERVER数据库上创建测试账号和表

这里我用的是10.16.74.140的PUBS数据库,账号cyx,

create table t (c char(10));

2、我测试所用数据库和透明网关是在同一台机器上,在我本机:10.16.98.16,透明网关在oracle默认安装时是不安装的,所以如果你想用需要选择这一选项。

3、安装透明网关for sql server的软件后,可以在$ORACLE_HOME下看到tg4msql目录,编辑$ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件确认这一行正确:

HS_FDS_CONNECT_INFO="SERVER=10.16.74.140;DATABASE=pubs"

4、修改透明网关server上的listener.ora,在SID_LIST中加入以下内容:

(SID_NAME = tg4msql) # SID自己命名

(ORACLE_HOME = c:)

(PROGRAM = tg4msql)

5、在oracle server上的tnsnames.ora中加入到透明网关的tnsname,内容如下:

sql2k =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.98.16)(PORT = 1521)) #此处HOST填的是透明网关SERVER的地址

)

(CONNECT_DATA = (SID = tg4msql) ) #此SID应和透明网关SERVER上设定的SID相同

(HS=OK)

)

6、修改ORACLE SERVER的初始化参数,将global_names设为false,因为我们并不使用GLOBAL NAME。然后重起数据库。

7、现在在ORACLE SERVER上创建DB LINK就可以了。下面实验数据:


C:>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 6月 25 13:29:41 2003

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> conn sys/change_on_install as sysdba

已连接。

SQL> create user cyx identified by cyx default tablespace users;

用户已创建

SQL> grant connect to cyx;

授权成功。

SQL> grant resource to cyx;

授权成功。

SQL> conn cyx/cyx

已连接。

SQL> create database link tosql2k connect to cyx identified by cyx using

2 'sql2k';

数据库链接已创建。

SQL> select * from t@tosql2k;

c

----------

abc

aaa

bbb

cyx

gototop

ncn

11111

已选择7行。

SQL> insert into t@tosql2k values('ncn.cn');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from t@tosql2k;

c

----------

abc

aaa

bbb

cyx

gototop

ncn

11111

ncn.cn

已选择8行。

------------ www.ncn.cn ------------- gototop --------------

以上示例,oracle server和透明网关server都是在同一台机器上,像在开始说明的那样,我们同样可以在其他下面oracle server中通过透明网关来访问sql server的数据。下面是示例:

现在这个oracle server上添加tnsname。

------------ www.ncn.cn ------------- gototop --------------

hawk3$sqlplus cyx

SQL*Plus: Release 8.1.7.0.0 - Production on Wed Jun 25 14:00:34 2003

(c) Copyright 2000 Oracle Corporation. All rights reserved.

Enter password:

Connected to:

Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production

With the Partitioning option

JServer Release 8.1.7.0.0 - Production

SQL> create database link hawk3_sql2k connect to cyx identified by cyx

2 using 'sql2k';

Database link created.

SQL> select * from t@hawk3_sql2k;

c

--------------------

abc

aaa

bbb

cyx

gototop

ncn

11111

ncn.cn

8 rows selected.

 

很多朋友问到关于透明网关的一些问题,在此加以说明如下:

1、Oracle For SQL Server的透明网关在UNIX下无法实现,目前只支持WIN; 原因很简单,SQL Server本身不支持UNIX,所以Oracle也无法直接在UNIX下访问SQL Server。 

2、Oracle For其它数据库的透明网关,如SYBASE等有UNIX本版本的数据库在UNIX可以实现。 

3、Oracle透明网关软件在Oracle 8i时是需要花钱另买的,大约1万$;到Oracle 9i时是作为数据库的一个组件免费发布的。安装时在组件种选择即可。 

4、针对我们的实际应用,如果有需要实现Oracle 到SQL Server的互连,我们需要另外用一台WIN下的Oracle 9i来做透明网关服务器,其它UNIX下的Oracle通过这个透明网关来访问SQL Server。 

5、不同数据库间的数据处理需使用标准SQL来实现。 

6、各数据库中特殊的数据类型,需要在程序中实现转换,应尽量避免使用无法转换的数据类型。


分享到:
评论

相关推荐

    oracle与sqlserver的数据交互工具代码,包括sqlserver驱动jar包连接池jar包等

    这是自己开发的一个可以实现oracle数据库与sqlserver数据库进行交互数据的工具类,里面包括一个配置文件,可以用来配置连接数据库的相关数据,里面有相关注释,相应的jar包都在里面。可实现一条数据已提交,也可多条...

    sql2008与oracle11gR1数据库交互详解

    本主题聚焦于“SQL Server 2008”与“Oracle 11g R1”之间的交互,主要涉及如何配置数据库链接以及通过ODBC(Open Database Connectivity)进行数据导入。 首先,SQL Server 2008是微软公司推出的关系型数据库管理...

    java jsp sqlserver数据表转移到oracle实例 源代码

    标题中的“java jsp sqlserver数据表转移到oracle实例 源代码”表明这是一个关于使用Java和JSP技术,将SQL Server数据库中的数据表迁移至Oracle数据库的实际操作案例。这个过程通常涉及数据迁移、数据转换以及可能的...

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

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

    实现 Oracle 连接 SQL Server

    3. **创建数据库链接**:创建一个指向 SQL Server 数据库的数据库链接,以便从 Oracle 数据库访问 SQL Server 数据库的数据: ``` CREATE DATABASE LINK pubs CONNECT TO sa IDENTIFIED BY sa USING 'pubs'; ``` ...

    将SQLSERVER中的数据同步到ORACLE中

    ### 将SQL Server中的数据同步到Oracle中 在IT领域,特别是在企业级应用环境中,不同数据库平台间的数据同步是一项常见的需求。例如,在某些情况下,可能需要将SQL Server 2005中的数据同步到Oracle数据库中,以便...

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

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

    oracle数据导入sql server

    ### Oracle数据导入SQL Server:类型不变的高效迁移方法 在跨数据库平台迁移的过程中,保持数据类型的一致性是一项挑战性的任务。本文将详细介绍如何将Oracle数据库中的数据导入至SQL Server,同时确保数据类型不变...

    深度对比 Oracle与SQL Server

    Oracle 通过数据字典视图(如 V$TABLESPACE、V$DATABASE 等)提供了丰富的系统元数据信息,而 SQL Server 通过动态管理视图(如 sys.tables、sys.columns 等)实现类似功能。这些元数据不仅有助于数据库管理员了解...

    oracle,sql server驱动包

    Oracle和SQL Server是两大主流的关系型数据库管理系统,广泛应用于企业级的数据存储和处理。这两个数据库系统各有其特性和优势,但为了在Java环境下与它们进行交互,我们需要对应的数据库驱动包。这里提到的"oracle,...

    mysql oracle sqlserver jdbc驱动包

    MySQL、Oracle和SQL Server是三种非常流行的商业和开源关系型数据库管理系统(RDBMS),广泛应用于各种规模的企业和项目中。JDBC(Java Database Connectivity)是Java编程语言的一个标准接口,它允许Java应用程序...

    mysql oracle SqlServer驱动

    标题提到的“mysql oracle SqlServer驱动”分别指的是针对MySQL、Oracle和SQL Server这三种主流关系型数据库的连接驱动。这些驱动程序允许开发者通过编程语言(如Java、Python、C#等)与数据库进行交互,执行SQL查询...

    Oracle19C RAC通过gateways连接SQL server数据库

    Oracle Gateway使得不同数据库系统间的数据交互成为可能,实现异构数据库间的透明访问。 首先,我们需要了解Oracle 19C RAC的网络配置。在这个环境中,我们有两个节点:racdb1和racdb2,它们分别拥有公共IP(192....

    sqlserver连接oracle

    SQL Server 连接 Oracle 服务器详解 SQL Server 作为链接服务器连接 Oracle ...通过配置 Windows 的 ODBC 数据源和 SQL Server 2000 中的连接服务器,可以实现 SQL Server 连接 Oracle 数据库,实现数据交互和共享。

    java+SSH+oracle+sqlserver学习笔记

    【Java SSH Oracle SQLServer 学习笔记】 Java是一种广泛使用的面向对象的编程语言,它以其跨平台、开源和丰富的库而闻名。SSH是三个开源框架的缩写,分别是Spring、Struts和Hibernate,它们在Java Web开发中起着至...

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

    在实际工作中,经常需要在不同的数据库系统之间进行数据交互。本文档将详细介绍如何使用 SQL Server 2012 实现与 Oracle 数据库的连接,并进行数据操作。此文档包含了从环境搭建到实际操作的全过程,旨在帮助读者...

    oracle和sql server区别

    Oracle 有七个基本表空间:SYSTEM 表空间、RBS 回滚表空间、TEMP 临时表空间、TOOLS 交互式表空间、USERS 用户默认表空间、INDX 索引表空间和 DBSYS 福数据表空间。不同的数据分别放在不同的表空间(数据字典与真实...

    oracle与sql_server数据类型对应关系.doc

    在进行Oracle与SQL Server之间的数据交互时,深入了解和掌握数据类型之间的转换规则及限制是至关重要的。通过本文的分析,我们不仅了解了两者的数据类型映射,还掌握了在实际应用中可能遇到的问题及应对策略。这对于...

Global site tag (gtag.js) - Google Analytics