将SQLSERVER中的数据同步到ORACLE中
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何将SQLServer2005中的数据同步到Oracle中
有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。
1.在Oracle中建立对应的contract 和contract_project表,需要同步哪些字段我们就建那些字段到O racle表中。
这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行:
SELECT*
FROM msdb.dbo.MSdatatype_mappings
SELECT*
FROM msdb.dbo.sysdatatypemappings
来查看SQLServer和其他数据库系统的数据类型对应关系。第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。
ORACLE bigint NUMBER1931
ORACLE binary BLOB NULL01
ORACLE binary RAW-141
ORACLE bit NUMBER131
ORACLE char CHAR-141
ORACLE char CLOB NULL01
ORACLE char VARCHAR2-141
ORACLE datetime DATE NULL01
ORACLE decimal NUMBER-131
ORACLE double precision FLOAT NULL01
ORACLE float FLOAT NULL01
ORACLE image BLOB NULL01
ORACLE int NUMBER1031
ORACLE money NUMBER1931
ORACLE nchar NCHAR-141
ORACLE nchar NCLOB NULL01
ORACLE ntext NCLOB NULL01
ORACLE numeric NUMBER-131
ORACLE nvarchar NCLOB NULL01
ORACLE nvarchar NVARCHAR2 -141
ORACLE nvarchar(max) NCLOB NULL01
ORACLE real REAL NULL01
ORACLE smalldatetime DATE NULL01
ORACLE smallint NUMBER531
ORACLE smallmoney NUMBER1031
ORACLE sysname NVARCHAR2 12841
ORACLE text CLOB NULL01
ORACLE timestamp RAW841
ORACLE tinyint NUMBER331
ORACLE uniqueidentifier CHAR3841
ORACLE varbinary BLOB NULL01
ORACLE varbinary RAW-141
ORACLE varbinary(max) BLOB NULL01
ORACLE varchar CLOB NULL01
ORACLE varchar VARCHAR2-141
ORACLE varchar(max) CLOB NULL01
ORACLE xml NCLOB NULL01
ORACLE bigint NUMBER1931
ORACLE binary BLOB NULL01
ORACLE binary RAW-141
ORACLE bit NUMBER131
ORACLE char CHAR-141
ORACLE char CLOB NULL01
ORACLE char VARCHAR2-141
ORACLE datetime DATE NULL01
ORACLE decimal NUMBER-131
ORACLE double precision FLOAT NULL01
ORACLE float FLOAT NULL01
ORACLE image BLOB NULL01
ORACLE int NUMBER1031
ORACLE money NUMBER1931
ORACLE nchar CHAR-141
ORACLE nchar CLOB NULL01
ORACLE ntext CLOB NULL01
ORACLE numeric NUMBER-131
ORACLE nvarchar CLOB NULL01
ORACLE nvarchar VARCHAR2-141
ORACLE nvarchar(max) CLOB NULL01
ORACLE real REAL NULL01
ORACLE smalldatetime DATE NULL01
ORACLE smallint NUMBER531
ORACLE smallmoney NUMBER1031
ORACLE sysname VARCHAR212841
ORACLE text CLOB NULL01
ORACLE timestamp RAW841
ORACLE tinyint NUMBER331
ORACLE uniqueidentifier CHAR3841
ORACLE varbinary BLOB NULL01
ORACLE varbinary RAW-141