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

SQLServer2005中的数据同步到Oracle中

阅读更多

有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。
  1.在Oracle中建立对应的contract 和 contract_project表,需要同步哪些字段我们就建那些字段到Oracle表中。
  这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行:

SELECT * FROM msdb.dbo.MSdatatype_mappings SELECT * FROM msdb.dbo.sysdatatypemappings

  来查看SQLServer和其他数据库系统的数据类型对应关系。第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。

ORACLE bigint NUMBER 19 3 1 ORACLE binary BLOB NULL 0 1 ORACLE binary RAW -1 4 1 ORACLE bit NUMBER 1 3 1 ORACLE char CHAR -1 4 1 ORACLE char CLOB NULL 0 1 ORACLE char VARCHAR2 -1 4 1 ORACLE datetime DATE NULL 0 1 ORACLE decimal NUMBER -1 3 1 ORACLE double precision FLOAT NULL 0 1 ORACLE float FLOAT NULL 0 1 ORACLE image BLOB NULL 0 1 ORACLE int NUMBER 10 3 1 ORACLE money NUMBER 19 3 1 ORACLE nchar NCHAR -1 4 1 ORACLE nchar NCLOB NULL 0 1 ORACLE ntext NCLOB NULL 0 1 ORACLE numeric NUMBER -1 3 1 ORACLE nvarchar NCLOB NULL 0 1 ORACLE nvarchar NVARCHAR2 -1 4 1 ORACLE nvarchar(max) NCLOB NULL 0 1 ORACLE real REAL NULL 0 1 ORACLE smalldatetime DATE NULL 0 1 ORACLE smallint NUMBER 5 3 1 ORACLE smallmoney NUMBER 10 3 1 ORACLE sysname NVARCHAR2 128 4 1 ORACLE text CLOB NULL 0 1 ORACLE timestamp RAW 8 4 1 ORACLE tinyint NUMBER 3 3 1 ORACLE uniqueidentifier CHAR 38 4 1 ORACLE varbinary BLOB NULL 0 1 ORACLE varbinary RAW -1 4 1 ORACLE varbinary(max) BLOB NULL 0 1 ORACLE varchar CLOB NULL 0 1 ORACLE varchar VARCHAR2 -1 4 1 ORACLE varchar(max) CLOB NULL 0 1 ORACLE xml NCLOB NULL 0 1 ORACLE bigint NUMBER 19 3 1 ORACLE binary BLOB NULL 0 1 ORACLE binary RAW -1 4 1 ORACLE bit NUMBER 1 3 1 ORACLE char CHAR -1 4 1 ORACLE char CLOB NULL 0 1 ORACLE char VARCHAR2 -1 4 1 ORACLE datetime DATE NULL 0 1 ORACLE decimal NUMBER -1 3 1 ORACLE double precision FLOAT NULL 0 1 ORACLE float FLOAT NULL 0 1 ORACLE image BLOB NULL 0 1 ORACLE int NUMBER 10 3 1 ORACLE money NUMBER 19 3 1 ORACLE nchar CHAR -1 4 1 ORACLE nchar CLOB NULL 0 1 ORACLE ntext CLOB NULL 0 1 ORACLE numeric NUMBER -1 3 1 ORACLE nvarchar CLOB NULL 0 1 ORACLE nvarchar VARCHAR2 -1 4 1 ORACLE nvarchar(max) CLOB NULL 0 1 ORACLE real REAL NULL 0 1 ORACLE smalldatetime DATE NULL 0 1 ORACLE smallint NUMBER 5 3 1 ORACLE smallmoney NUMBER 10 3 1 ORACLE sysname VARCHAR2 128 4 1 ORACLE text CLOB NULL 0 1 ORACLE timestamp RAW 8 4 1 ORACLE tinyint NUMBER 3 3 1 ORACLE uniqueidentifier CHAR 38 4 1 ORACLE varbinary BLOB NULL 0 1 ORACLE varbinary RAW -1 4 1 ORACLE varbinary(max) BLOB NULL 0 1 ORACLE varchar CLOB NULL 0 1 ORACLE varchar VARCHAR2 -1 4 1 ORACLE varchar(max) CLOB NULL 0 1 ORACLE xml CLOB NULL 0 1 ORACLE bigint NUMBER 19 3 1 ORACLE binary BLOB NULL 0 1 ORACLE binary RAW -1 4 1 ORACLE bit NUMBER 1 3 1 ORACLE char CHAR -1 4 1 ORACLE char CLOB NULL 0 1 ORACLE char VARCHAR2 -1 4 1 ORACLE datetime DATE NULL 0 1 ORACLE decimal NUMBER -1 3 1 ORACLE double precision FLOAT NULL 0 1 ORACLE float FLOAT NULL 0 1 ORACLE image BLOB NULL 0 1 ORACLE int NUMBER 10 3 1 ORACLE money NUMBER 19 3 1 ORACLE nchar NCHAR -1 4 1 ORACLE nchar NCLOB NULL 0 1 ORACLE ntext NCLOB NULL 0 1 ORACLE numeric NUMBER -1 3 1 ORACLE nvarchar NCLOB NULL 0 1 ORACLE nvarchar NVARCHAR2 -1 4 1 ORACLE nvarchar(max) NCLOB NULL 0 1 ORACLE real REAL NULL 0 1 ORACLE smalldatetime DATE NULL 0 1 ORACLE smallint NUMBER 5 3 1 ORACLE smallmoney NUMBER 10 3 1 ORACLE sysname NVARCHAR2 128 4 1 ORACLE text CLOB NULL 0 1 ORACLE timestamp RAW 8 4 1 ORACLE tinyint NUMBER 3 3 1 ORACLE uniqueidentifier CHAR 38 4 1 ORACLE varbinary BLOB NULL 0 1 ORACLE varbinary RAW -1 4 1 ORACLE varbinary(max) BLOB NULL 0 1 ORACLE varchar CLOB NULL 0 1 ORACLE varchar VARCHAR2 -1 4 1 ORACLE varchar(max) CLOB NULL 0 1 ORACLE xml NCLOB NULL 0 1

 

2.建立链接服务器。我们将Oracle系统作为SQLServer的链接服务器加入到SQLServer中。
  3.使用SQL语句通过链接服务器将SQLServer数据写入Oracle中。
  比如我们建立了链接服务器MIS,而Oracle中在MIS用户下面建立了表contract_project,那么我们的SQL语句就是:

DELETE FROM MIS..MIS.CONTRACT_PROJECT --清空Oracle表中的数据 INSERT into MIS..MIS.CONTRACT_PROJECT--将SQLServer中的数据写到Oracle中 SELECT contract_id,project_code,actual_money FROM contract_project

  如果报告成功,那么我们的数据就已经写入到Oracle中了。用

SELECT * FROM MIS..MIS.CONTRACT_PROJECT

  查看Oracle数据库中是否已经有数据了。
  4.建立SQLAgent,将以上同步SQL语句作为执行语句,每天定时同步两次。
  这样我们的同步就完成了。
  这里需要注意的是MIS..MIS.CONTRACT_PROJECT 这里必须要大写,如果是小写的话会造成同步失败。

 

from:

http://www.zxbc.cn/html/20080524/50677_2.html

分享到:
评论

相关推荐

    将SQL Server 2005中数据同步到Oracle中

    在这个例子中,我们关注的是如何将SQL Server 2005中的数据同步到Oracle数据库中。这个过程通常涉及以下几个关键步骤: 1. **安装Oracle客户端**:在SQL Server 2005服务器上安装Oracle 9i客户端是首要任务,因为这...

    将SQLSERVER中的数据同步到ORACLE中

    例如,在某些情况下,可能需要将SQL Server 2005中的数据同步到Oracle数据库中,以便其他系统能够访问这些数据。这种跨数据库平台的数据迁移或同步操作可以通过多种方式实现,本文将详细介绍其中一种方法:使用链接...

    Oracle同步数据到Sql Server

    Oracle同步数据到Sql Server,只是初始加载过程,由于本人也是在学习阶段,本资料主要是用于备份,慎入!

    sql server中的image类型的数据导出到oracle的clob字段中

    SQL Server 中 Image 类型数据导出到 Oracle 的 CLOB 字段中 在进行数据库迁移或数据交换时,需要将不同数据库管理系统之间的数据类型进行转换。在本文中,我们将讨论如何将 SQL Server 中的 Image 类型数据导出到 ...

    sql server 2005到oracle10g数据库的移植视频教程

    1. **数据模型捕获**:在SQL Server 2005中使用工具捕获数据模型。 2. **转换为Oracle模型**:将捕获的SQL Server模型转换为适用于Oracle的数据模型。 3. **生成Oracle脚本**:根据转换后的模型生成相应的Oracle PL/...

    oracle数据库导入到SQL server.docx

    总体思路是:先将Oracle数据库类型转换为SQL Server模式,接着同步Oracle数据到SQL Server数据库,最后迁移Oracle数据到SQL Server数据库。 本文详细讲解了如何使用Microsoft SQL Server Migration Assistant for ...

    sql数据同步到oracle

    3. **数据库链接服务器**:SQL Server支持创建到其他数据库(包括Oracle)的链接服务器,可以直接在SQL Server中编写跨服务器查询,实现数据同步。同样,Oracle也有相应的DB Link功能,可以实现反向同步。 4. **第...

    如何在两个SQLSERVER之间数据同步

    ### 如何在两个SQLSERVER之间实现数据同步 在IT领域,特别是对于企业级应用而言,数据同步是一项重要的技术,能够确保不同地理位置的数据中心之间数据的一致性和可用性。本文将详细介绍如何通过SQL Server的复制...

    1.配置sqlserver2012到oracle的ogg同步复制报告.pdf

    本实验旨在实现从 SQL Server 2012 到 Oracle 数据库的数据同步复制功能,采用 Oracle GoldenGate (OGG) 工具进行搭建与配置。主要目标是测试表数据的 DML (数据操作语言) 同步能力。 #### 实验环境 - **源端(SQL ...

    ogg sqlserver-oracle mysql-oracle mysql-mysql的同步配置参考

    在本配置参考中,我们将探讨如何使用Oracle GoldenGate(简称OGG)来实现SQL Server到Oracle,MySQL到Oracle以及MySQL到MySQL的同步配置。 1. SQL Server到Oracle的同步配置: - 首先,你需要在SQL Server上安装并...

    sqlserver转oracle

    标题“sqlserver转oracle”指的是将SQL Server数据库中的数据迁移或同步到Oracle数据库的过程。这个过程通常发生在组织更换数据库系统,或者需要在不同数据库平台之间共享数据时。下面将详细介绍这个过程中涉及的...

    SQLSERVER2000连接到ORACLE

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

    SqlServer数据库OGG安装部署及数据初始化.docx

    接着,将OGG for Sqlserver的软件包解压缩到指定目录,比如"ogg",然后通过`install addservice`命令在CMD中注册Windows服务,包括源端和目标端的Manager进程。 创建ODBC数据源命名(DSN)是连接SQL Server的关键...

    confluent实时同步sqlserver数据debezium-connector-sqlserver.zip

    sql server2008 cdc 数据实时同步到kafka,Debezium是捕获数据实时动态变化的开源的分布式同步平台。能实时捕获到数据源(Mysql、Mongo、PostgreSql)的:新增(inserts)、更新(updates)、删除(deletes)操作,实时...

    从SqlServer导数据到Oracle数据库的winform程序(定时器).zip

    通过以上知识点,我们可以了解到这个项目是一个实用的数据同步工具,对于需要在SQL Server和Oracle之间定期交换数据的环境非常有用。对于初学者来说,这是一个很好的学习C#、数据库操作以及定时任务实现的实例。

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

    6. **性能优化**:由于跨数据库查询可能会导致性能问题,因此在实际使用中,考虑使用存储过程、视图或者定期的数据同步来提高效率。 通过以上步骤,你就可以在SQL Server中顺利地访问和操作Oracle数据库了。但请...

    Sqlserver转Oracle工具

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

    SQL Server 2005与Oracle之间数据复制技术的研究.pdf

    标题中提到的是“SQL Server 2005与Oracle之间数据复制技术的研究”,这涉及到两个非常重要的关系数据库管理系统(RDBMS)之间的数据同步技术。微软的SQL Server 2005是一个为商业应用提供数据管理和分析解决方案的...

    一款开源的数据同步中间件提供MySQL、Oracle、SqlServer、Postgre,File,kafka,SQL等同步场景

    DBSyncer(简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、...

Global site tag (gtag.js) - Google Analytics