在开发中用到的Oracle与SQL Server间数据传输的不同方法的整理,比较。包括原理的
简介,配置和实现方法,优缺点的比较,使用平台和DB,适合的应用范围和效能的比较。

整理的方法有如下六种:

1. Oracle Transparent Gateway Connect to SQL Server
使用Oracle提供的透明网关建立异构数据库连接关系。实现数据传输。
支持Distribution Transaction, 效能极好,使用时与普通SQL用法基本一致,异构数据库之间的联系
非常透明,且在使用SQL Server提供的数据时同样可以应用到Oracle Procedure等特有资源,因此仅需一
次性的配置,基本不需要在使用中再进行任何培训。
适合同时使用以Oracle为主的多种数据库且有数据关联的项目,使用教透明,在开发中基本不必考虑异构数
据库的影响,且能提供完善的事务支持。

2. SQL Server Link Server
使用MS SQL Server 提供的Linked Server建立对其他异构数据库服务器的单向信任连接,实现数据传输。
支持Distribution Transaction, 效能较好,但存在平台限制,连接仅能设置在SQL Server端,使用较透明。
使用时SQL语法与常用方法差别很小,很利于开发人员快速适应使用。
适合同时使用以SQL Server为主的多种数据库且有数据关联的项目,使用教透明,在开发中基本不必考虑异
构数据库的影响,且能提供完善的事务支持。

3. Web Method 构建统一数据平台
开发方便快速,不受OS等平台限制,有很完备的log机制但是不支持Transaction,对Table Schema等
数据库对象的初期维护要求较高,不易推广。
Web Method平台不太适合用于SQL Server与Oracle之间的数据转换,这跟用其他语言程序来访问数据
库获得数据然后Insert在本质上没有什么区别, 非常适合于有类似订阅发布机制的数据传输和转换的需求,适
合系统数据整合,即实现各个系统间数据的同步。

4. 基于Web Service的Oracle与SQL Server之间进行数据交换
能够桥接不同组件模块的系统、操作系统和编程语言之间的差异,可直接在Web Service发布的服务器上进
行更新,而不需要考虑对客户端的影响,可以在后台进行启用,可减少用户的无效等待时间。有完整的数据传输
Check机制,但是同样不支持Transaction,而且数据传输使用明文,安全性不高,且较二进制代码效率较低。
 适合需要在不同平台间进行数据交互(即Oracle 和 SQL Server分别被不同的平台使用), 需要的透明性
比较强但又不希望数据库被其它用户直接操作, 同时对事物处理要求不高,且难以在本地部署或者本地部署代价
过高的情况。

5. Visual Basic (AP)实现数据传输
使用Visual Basic,利用COM+和MTS等通过VB编码实现不同DB间的数据传输。VB简单易学。有利于
快速开发系统。MTS屏蔽了底层实现的复杂性,使开发人员可以将精力集中在业务逻辑上。但是实现方案本身配置
复杂,需要打各种补丁(patch),对系统依赖性强。
适合Oracle与SQL Server之间进行数据传输,需要事务支持,且传输过程还有依据业务逻辑对数据进行
处理的需求。

6. DTS数据传输
使用MS SQL Server提供的DTS进行异构数据库的数据传输。
操作简单,仅需托拽,也可以编辑脚本执行并且可以作为SQL Job执行。 数据流向灵活,为双向。但功能单,
仅能实现数据传输,不能应对复杂业务逻辑,无事务级约束,无法保证数据传输的完整性。效能一般。
  比较适合单纯的少量数据的导入导出操作,且对数据的完整性要求不高。

http://www.doc88.com/p-188634055285.html

Oracle & SQL Server 数据传输的更多相关文章

  1. 介绍几种大型的Oracle/SQL Server数据库免费版

    我们知道,Oracle和SQL Server等大型数据库也都存在一些免费的版本,这些免费的版本已经能够满足许多中小项目的需求.对于在校大学生来说,从学习的目标上来讲,安装免费版的大型数据库也就足够用了 ...

  2. Oracle,SQL Server 数据库较MySql数据库,Sql语句差异

    原文:Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 1.关系型数据库 百度百科 关系数据库 ...

  3. mysql,oracle,sql server数据库默认的端口号,端口号可以为负数吗?以及常用协议所对应的缺省端口号

    mysql,oracle,sql server数据库默认的端口号? mysql:3306 Oracle:1521 sql server:1433 端口号可以为负吗? 不可以,端口号都有范围的,0~65 ...

  4. 触发器实现对插入数据的字段更改 Oracle+SQL Server

    最近有个使用触发器实现对插入数据的某个列做更改的需求,因此整理了Oracle和SQL Server对于此类需求的触发器写法,本文仅提到了Insert触发器. 首先我们创建一张表: --创建Test表 ...

  5. 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)

    1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...

  6. 转:不在同一个服务器上的数据库之间的数据操作(oracle/sql server的对比)

    如何操做不在同一个数据库中的数据操作: 一.对于SQL server来讲:  1.采用创建链接服务器的方式:    (1).创建链接服务器       exec sp_addlinkedserver  ...

  7. mysql,oracle,sql server中的默认事务隔离级别查看,更改

    未提交读(隔离事务的最低级别,只能保证不读取物理上损坏的数据) 已提交读(数据库引擎的默认级别) 可重复读 可序列化(隔离事务的最高级别,事务之间完全隔离) 可串行化比较严谨,级别高; MySQL m ...

  8. Perl/C#连接Oracle/SQL Server和简单操作

    连接数据库是一个很常见也很必须的操作.先将我用到的总结一下. 1. Perl 连接数据库 Perl 连接数据库的思路都是: 1)使用DBI模块: 2)创建数据库连接句柄dbh: 3)利用dbh创建语句 ...

  9. MySQL/Oracle/SQL Server默认端口、JDBCdriver、Url

    sqlserver默认端口号为:1433URL:"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname"DRI ...

随机推荐

  1. 【SQL查询】日期的转换_to_date/to_char

    1. 日期转换为字符 select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual; 2. 字符转换为日期 select to_date('200 ...

  2. setInterval(callback(),time)

    最近在写一个需求的时候,出了点小小的问题,在这做个记录. 对于定时函数setInterval()大家应该都不陌生,setInterval(callback(),time)就是说设置一个定时器,每隔ti ...

  3. 设置eclipse显示代码错误提示的

    http://jingyan.baidu.com/article/f3e34a128d79aff5ea65356c.html

  4. 项目中使用的ajax代码_:觉得还好

    POST>> submitHandler:function(form){ var username = $('#user_name').val(); var password = $('# ...

  5. HiHoCoder1156 彩色的树(树值的记忆化ORZ+map强势出场)

    1156 : 彩色的树 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵n个节点的树,节点编号为1, 2, …, n.树中有n - 1条边,任意两个节点间恰好有一条 ...

  6. next.js 简单使用

    1. 介绍 一个react.js 服务器端渲染开源项目(不只是服务器端渲染,直接也可以生成纯静态站点) 类似的解决方案有好多,比如react.js 自身的服务器渲染方案(但是使用起来就是比较怪异) g ...

  7. debezium 数据变更工具使用

    1.  作用 简单概述就是CDC(change data capture),实时数据分析领域用的比较多   2. 简单使用(基于官网的docker 说明)  备注: 测试没有使用守护进程模式为了方便测 ...

  8. python学习之logging

    学习地址:http://blog.csdn.net/zyz511919766/article/details/25136485 首先如果我们想简要的打印出日志,可以: import logging l ...

  9. shell 正则表达式与文件名匹配

    1) . : 匹配任意单ASCII 字符,可以为字母,或为数字. 2) 举例: ..XC..匹配deXC1t.23XCdf 等,.w..w..w.匹配rwxrw-rw- 行首以^匹配字符串或字符序列 ...

  10. java代码从键盘输入n的值,计算1+1/2+1/3+...+1/n的值,,

    总结:谢谢陈勇老师.很棒的指导.超有爱. 总是不思考++++如内存的分析.堆和栈.堆内存里对象,字符串,栈里基本数据类型 来龙去脉,属性方法的调用,都不是很理解.... package com.c2; ...