将SQL Server 2005中的数据同步到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中。
具体做法参见我以前的文章http://www.cnblogs.com/studyzy/archive/2006/12/08/690307.html
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 这里必须要大写,如果是小写的话会造成同步失败。
分享到:
相关推荐
在这个例子中,我们关注的是如何将SQL Server 2005中的数据同步到Oracle数据库中。这个过程通常涉及以下几个关键步骤: 1. **安装Oracle客户端**:在SQL Server 2005服务器上安装Oracle 9i客户端是首要任务,因为这...
例如,在某些情况下,可能需要将SQL Server 2005中的数据同步到Oracle数据库中,以便其他系统能够访问这些数据。这种跨数据库平台的数据迁移或同步操作可以通过多种方式实现,本文将详细介绍其中一种方法:使用链接...
Oracle同步数据到Sql Server,只是初始加载过程,由于本人也是在学习阶段,本资料主要是用于备份,慎入!
在本文中,我们将讨论如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中。 Image 类型在 SQL Server 中的应用 在 SQL Server 中,Image 类型用于存储二进制大对象(BLOB),如图像、音频、视频...
1. **数据模型捕获**:在SQL Server 2005中使用工具捕获数据模型。 2. **转换为Oracle模型**:将捕获的SQL Server模型转换为适用于Oracle的数据模型。 3. **生成Oracle脚本**:根据转换后的模型生成相应的Oracle PL/...
总体思路是:先将Oracle数据库类型转换为SQL Server模式,接着同步Oracle数据到SQL Server数据库,最后迁移Oracle数据到SQL Server数据库。 本文详细讲解了如何使用Microsoft SQL Server Migration Assistant for ...
2. **数据库触发器**:在SQL Server中创建触发器,当数据发生变化时,触发器自动执行将更改同步到Oracle的脚本。这种方法适用于实时性要求高的场景,但可能会增加数据库的负担。 3. **数据库链接服务器**:SQL ...
SqlServer2005通过复制同步Oracle10G,通过SQLServer Agent新建Oracle发布新建订阅实现数据库同步
### 如何在两个SQLSERVER之间实现数据同步 在IT领域,特别是对于企业级应用而言,数据同步是一项重要的技术,能够确保不同地理位置的数据中心之间数据的一致性和可用性。本文将详细介绍如何通过SQL Server的复制...
本实验旨在实现从 SQL Server 2012 到 Oracle 数据库的数据同步复制功能,采用 Oracle GoldenGate (OGG) 工具进行搭建与配置。主要目标是测试表数据的 DML (数据操作语言) 同步能力。 #### 实验环境 - **源端(SQL ...
在本配置参考中,我们将探讨如何使用Oracle GoldenGate(简称OGG)来实现SQL Server到Oracle,MySQL到Oracle以及MySQL到MySQL的同步配置。 1. SQL Server到Oracle的同步配置: - 首先,你需要在SQL Server上安装并...
标题“sqlserver转oracle”指的是将SQL Server数据库中的数据迁移或同步到Oracle数据库的过程。这个过程通常发生在组织更换数据库系统,或者需要在不同数据库平台之间共享数据时。下面将详细介绍这个过程中涉及的...
在这个场景中,我们关注的是如何在SQL Server数据库环境下安装配置Oracle GoldenGate(OGG),并将数据从SQL Server实时同步到Oracle数据库。以下是对整个过程的详细说明: 首先,确保你的SQL Server是企业版,并且...
本文将详细阐述如何在SQL Server 2000中建立到Oracle数据库的连接,以便从SQL Server中读取Oracle中的数据。 首先,我们需要了解SQL Server 2000的数据链接服务器功能,这是实现跨数据库连接的关键。数据链接服务器...
在本项目中,开发者创建了一个基于Winform的C#应用程序,该程序实现了从SQL Server数据库向Oracle数据库的数据迁移功能,并且这个迁移过程是通过一个定时器来触发的,确保了数据的实时同步。以下是关于这个项目的...
sql server2008 cdc 数据实时同步到kafka,Debezium是捕获数据实时动态变化的开源的分布式同步平台。能实时捕获到数据源(Mysql、Mongo、PostgreSql)的:新增(inserts)、更新(updates)、删除(deletes)操作,实时...
连接sqlserver数据库后选择相应的数据库-数据表以及目标数据库(目前只有oracle),可以将sqlserver转换成oracle数据,有两种方式,点击转换sql按钮,可以生成sql语句,复制语句到oracle里执行。第二种是连接oracle...
本篇文章将详细介绍如何在SQL Server中通过链接服务器技术来访问Oracle数据库,以实现数据的整合和交互。 首先,我们要理解SQL Server中的“链接服务器”概念。链接服务器是SQL Server提供的一种机制,它允许用户在...
DBSyncer(简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、...