SQLServer2005中的数据同步到Oracle中
有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。
在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 数据类型是否支持空值。 |
了解更多软件开发培训相关信息,请关注成都计算机培训学校