公司有一个系统是基于SqlServer 2k,现在,应客户要求,移植到Oracle 10g数据库。代码的扩展极其easy,三下五除二,搞定。就是在将数据从SqlServer 2k导入到Oracle 10g数据库中时出现了一些问题。刚开始采用的方案是把表结构和数据导入到Sql脚本中,然后在Oracle数据库中执行Sql脚本。这个过程涉及到数据 库字段类型的转换问题,容易出错。后来采用使用SqlServer 2k的DTS 将数据从SqlServer中导入到Oracle 10g中。工作就这么搞定了,为了方便以后数据类型的转换,方便以后做针对不同数据库的Sql脚本,我把SqlServer 2k和Oracle 10g大部分数据类型都做了一下测试,当然现在只有SqlServer 2k和Oracle 10g数据对应关系。不对应关系如下:
SqlServer 2k转换为Oracle 10g
列名 |
SqlServer数据类型 |
SqlServer长度 |
Oracle数据类型 |
column1 |
bigint |
8 |
NUMBER(19) |
column2 |
binary |
50 |
RAW(50) |
column3 |
bit |
1 |
NUMBER(2) |
column4 |
char |
10 |
CHAR(10) |
column5 |
datetime |
8 |
DATE |
column6 |
decimal |
9 |
NUMBER(18) |
column7 |
float |
8 |
BINARY_DOUBLE |
column8 |
image |
16 |
BLOB |
column9 |
int |
4 |
NUMBER(10) |
column10 |
money |
8 |
NUMBER(19,4) |
column11 |
nchar |
10 |
NCHAR(10) |
column12 |
ntext |
16 |
NCLOB |
column13 |
numeric |
9 |
NUMBER(18) |
column14 |
nvarchar |
50 |
NVARCHAR2(50) |
column15 |
real |
4 |
BINARY_FLOAT |
column16 |
smalldatetime |
4 |
DATE |
column17 |
smallint |
2 |
NUMBER(5) |
column18 |
smallmoney |
4 |
NUMBER(10,4) |
column19 |
sql_variant |
|
BLOB |
column20 |
text |
16 |
CLOB |
column21 |
timestamp |
8 |
RAW(8) |
column22 |
tinyint |
1 |
NUMBER(3) |
column23 |
uniqueidentifier |
16 |
BLOB |
column24 |
varbinary |
50 |
RAW(50) |
column25 |
varchar |
50 |
VARCHAR2(50) |
Oracle 10g 转换为SqlServer 2k
Oracle列名 |
Oracle数据类型 |
SqlServer列名 |
SqlServer数据类型 |
SqlServer数据长度 |
COLUMN1 |
BINARY_DOUBLE |
COLUMN1 |
float |
8 |
COLUMN2 |
BINARY_FLOAT |
COLUMN2 |
real |
4 |
COLUMN3 |
BLOB |
COLUMN3 |
image |
16 |
COLUMN4 |
CLOB |
COLUMN4 |
ntext |
16 |
COLUMN5 |
CHAR(10) |
COLUMN5 |
nchar |
10 |
COLUMN6 |
DATE |
COLUMN6 |
datetime |
8 |
COLUMN12 |
NUMBER |
COLUMN12 |
numeric |
13 |
COLUMN13 |
NVARCHAR2(10) |
COLUMN13 |
nvarchar |
10 |
COLUMN14 |
RAW(10) |
COLUMN14 |
varbinary |
10 |
COLUMN15 |
TIMESTAMP(6) |
COLUMN15 |
datetime |
8 |
COLUMN16 |
TIMESTAMP(6) WITH LOCAL TIME ZONE |
COLUMN16 |
datetime |
8 |
COLUMN17 |
TIMESTAMP(6) WITH TIME ZONE |
COLUMN17 |
datetime |
8 |
COLUMN18 |
VARCHAR2(10) |
COLUMN18 |
nvarchar |
10 |
COLUMN7 |
INTERVAL DAY(2) TO SECOND(6) |
COLUMN7 |
nvarchar |
30 |
COLUMN8 |
INTERVAL YEAR(2) TO MONTH |
COLUMN8 |
nvarchar |
14 |
COLUMN9 |
LONG |
COLUMN9 |
ntext |
16 |
COLUMN10 |
LONG RAW |
COLUMN10 |
image |
16 |
COLUMN11 |
NCLOB |
COLUMN11 |
ntext |
16 |
我们在做数据库移植设计的时候,完全DIY,可以考虑设计可扩展组件完成这种数据库表、列等对应关系的转换工作,那么以后再做系统移植中数据导入时就一劳永逸了。现在也没有时间做这种工作,不过感觉这还是挺有意义的一项工作。
在转换过程中,出现了另一个问题,就是如果SqlServer 2k 中的表名含有小写,那么在导入到Oracle 10g后,需要修改表名,否则Sql语句会执行失败。(导入后表名多了引号) 比如SqlServer 2k有一个表test,导入到Oracle 10g后显示的表名仍然为test,但是如果你要查询test表中的数据时,按照正常情况下,你只用输入select * from test即可,可是现在却变成select * from "test"。通过Oracle 10g的维护系统进入修改表名时,表名显示为带有引号的-"test"。出现这个问题,因为表不是很多,所以我们将SqlServer 2k的表名都改为了大写,或者在Oracle中将表名改为大写,就ok了,需要注意这些细节。Oracle 10g导入到SqlServer 2k中没有出现问题。
分享到:
相关推荐
标题所述的"sqlserver2005移植到oracle数据库移植报告"主要涉及的是将SQL Server 2005中的数据迁移到Oracle数据库的过程和技术。在描述中提到了两种数据库之间的数据导入方法,以及针对Oracle运行环境的需求。接下来...
本文档详细介绍了如何在Oracle 10g或11g环境中使用DBLink来访问SQL Server数据库的方法。这种方法对于那些习惯于使用Oracle进行数据库操作的开发人员来说尤其有用,因为它提供了一种在不同类型的数据库之间无缝切换...
在SQLServer中连接Oracle数据库可以通过设置Linked Server来实现。 ##### 4.1 配置Client - 在SQLServer的主机上安装Oracle客户端后,可以在数据源中看到Oracle的ODBC驱动。 - 注意客户端的版本与操作系统位数相...
2. 序列的创建:如果SQL Server中使用了IDENTITY字段,你需要在Oracle中创建序列来替代,用作自增ID。 3. 索引的重建:分析SQL Server的索引,然后在Oracle中创建等效的索引,包括唯一索引、非唯一索引、复合索引等...
在本文中,我们将详细介绍从 SQL Server 迁移数据到 Oracle 的步骤。数据迁移是数据库管理中的一项重要任务,它可以将数据从一个数据库管理系统迁移到另一个数据库管理系统。下面我们将逐步介绍从 SQL Server 迁移到...
Sql Server迁移数据到Oracle Sql Server迁移数据到Oracle是一个复杂的过程,需要使用正确的工具和技术来实现。下面是Sql Server迁移数据到Oracle的知识点: 1. 使用Oracle Sql Developer迁移工具:Oracle Sql ...
例如,通过这样的工具,我们可以导出SQL Server中的表结构、索引、存储过程、触发器等对象的创建语句。 描述中提到的"sqlserver转oracle"则是指将SQL Server数据库的内容迁移到Oracle数据库的过程。这个过程涉及到...
Oracle 到 SQL Server 跨库查询是指通过网关工具将数据从 SQL Server 数据库中抽取到 Oracle 数据库中。这个过程需要安装和配置网关软件,并进行相应的设置和配置。 一、网关软件安装 网关软件的安装是跨库查询的...
标题中的“JDBC Oracle10G MySql 5.1.57 SqlServer2k 2k5 驱动”表明这是一个关于数据库连接的资源集合,主要包括针对Oracle 10g、MySQL 5.1.57以及SQL Server 2000和2005的Java JDBC驱动程序。这些驱动程序是Java...
本文档旨在提供从SQL Server 2000迁移到Oracle 11g的操作流程指南。迁移数据库是一个复杂的过程,涉及到数据一致性、性能优化以及兼容性等多个方面。对于从SQL Server迁移到Oracle这样的跨平台迁移,更需要仔细规划...
### 使用Oracle移植工作台从Microsoft SQL Server移植到Oracle数据库10g #### 一、概述与背景 在当今数字化转型的时代背景下,企业面临着各种各样的技术挑战,其中一项重要的任务就是将现有系统的数据迁移到更先进...
### 从 SQL Server 迁移大批量数据到 Oracle 在 IT 领域,数据库迁移是一项常见的任务,尤其是在企业级应用中。随着业务的发展和技术的进步,企业可能需要将现有的 SQL Server 数据库迁移到 Oracle 数据库。本文将...
标题中的“java jsp sqlserver数据表转移到oracle实例 源代码”表明这是一个关于使用Java和JSP技术,将SQL Server数据库中的数据表迁移至Oracle数据库的实际操作案例。这个过程通常涉及数据迁移、数据转换以及可能的...
解决办法是:先从 Oracle 中把数据复制出来到 Excel,然后从 Excel 中粘贴到 Sql Server 中。 Step 14-20: 使用 Excel 中转数据 首先,在 Oracle 中点击红框的地方,全选数据,然后 Ctrl+C 复制。然后,新建一个 ...
本文将详细阐述如何在SQL Server 2000中建立到Oracle数据库的连接,以便从SQL Server中读取Oracle中的数据。 首先,我们需要了解SQL Server 2000的数据链接服务器功能,这是实现跨数据库连接的关键。数据链接服务器...
### SQL Server 2008 与 Oracle 11g 比较 #### 执行摘要 Microsoft SQL Server 2008 在多个关键领域表现出色,尤其在商业相关的领域中,相较于 Oracle Database 11g 显示出了显著的优势。这些优势主要体现在以下几...
sqlserver数据表向oracle转换,输入的参数是表名,输出的是建表语句
可以将SQL Server存储过程转为oracle存储过程的工具
在此项目中,源数据存储在SQL Server中,需要被导出到Oracle数据库。 4. **Oracle数据库**:Oracle是另一个广泛使用的RDBMS,尤其在企业级应用中。在本项目中,Oracle作为目标数据库接收从SQL Server导出的数据。 ...