当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
SQLServer2005中的数据同步到Oracle中(一)
发布时间:2010/11/3 9:35:56 来源:www.xue.net 编辑:城市总裁吧

  有时由于项目开发的需要,必须将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表了。

  MSdatatype_mappings 视图将 SQL Server 数据类型映射到非 SQL Server 数据库管理系统 (DBMS) 使用的数据类型。该表存储在 msdb 数据库中。

列名 数据类型 说明

dbms_name

nvarchar(128)

是 DBMS 的名称,可以是下列值之一:

sql_type

nvarchar(128)

是 SQL Server 数据类型。

dest_type

nvarchar(128)

非 SQL Server 数据类型的名称。

dest_prec

bigint

非 SQL Server 数据类型的精度。

dest_create_params

int

仅供内部使用。

dest_nullable

bit

指示非 SQL Server 数据类型是否支持空值。

  以下是引用片段:

  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

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved