上一篇文章采用的PowerDesigner实现对MSSQL数据库迁移到Oracle,后来博友建议用ESF Database Migration Toolkit进行迁移会更加简单方便,本文就是通过一个实例来讲解;文章后面是从网络上整理所得简单介绍Oracle与MSSQL类型的对照;

 

1:首先我们MSSQL创建一个数据库,并在里面建一张User的表,表相应字段如下图

mssql 转移到MYSQL mssql转oracle_mssql 转移到MYSQL

2:接着打开ESF Database Migration Toolkit选择我们源数据库的类型还有其它相应的参数信息

mssql 转移到MYSQL mssql转oracle_字符串_02

3:下一步开始针对目标数据库的设置及其它连接参数

mssql 转移到MYSQL mssql转oracle_数据库_03

4:选择要迁移的表或视图,这边还可以针对导过去内容进行一些设置(Custom Select)

mssql 转移到MYSQL mssql转oracle_二进制数_04

5:然后点"Submit" 提交

mssql 转移到MYSQL mssql转oracle_mssql 转移到MYSQL_05

6:迁移结束后如下图

mssql 转移到MYSQL mssql转oracle_4G_06

7:接着通过Oracle客户端查看我们迁移的表

mssql 转移到MYSQL mssql转oracle_二进制数_07

mssql 转移到MYSQL mssql转oracle_二进制数_08

mssql 转移到MYSQL mssql转oracle_mssql 转移到MYSQL_09

 

*因为Oracle是没有像MSSQL自增的字段,用ESF Database Migration Toolkit也会自动帮我们实现了

 

 



Oracle类型

CHAR         固定长度字符串    最大长度2000    bytes            
VARCHAR2     可变长度的字符串    最大长度4000    bytes      可做索引的最大长度749     
NCHAR        根据字符集而定的固定长度字符串    最大长度2000    bytes           
NVARCHAR2    根据字符集而定的可变长度字符串    最大长度4000    bytes           
DATE         日期(日-月-年)    DD-MM-YY(HH-MI-SS)    经过严格测试,无千虫问题     
LONG         超长字符串    最大长度2G(231-1)    足够存储大部头著作     
RAW          固定长度的二进制数据    最大长度2000    bytes      可存放多媒体图象声音等     
LONG         RAW    可变长度的二进制数据    最大长度2G    同上     
BLOB         二进制数据    最大长度4G         
CLOB         字符数据    最大长度4G         
NCLOB        根据字符集而定的字符数据    最大长度4G         
BFILE        存放在数据库外的二进制数据    最大长度4G         
ROWID        数据表中记录的唯一行号    10    bytes    ********.****.****格式,*为0或1     
NROWID       二进制数据表中记录的唯一行号    最大长度4000    bytes     
NUMBER(P,S)  数字类型    P为整数位,S为小数位     
DECIMAL(P,S) 数字类型    P为整数位,S为小数位     
INTEGER      整数类型    小的整数     
FLOAT        浮点数类型    NUMBER(38),双精度     
REAL         实数类型    NUMBER(63),精度更高



MSSQL类型       Oracle类型

bigint            NUMBER
binary            LONG RAW NOT NULL
bit            NUMBER (1, 0)
char            VARCHAR2 (900) NOT NULL
datetime        DATE
decimal            NUMBER (255, 3) NOT NULL
float            FLOAT NOT NULL
image            LONG RAW
int            NUMBER (255, 3) NOT NULL
money            NUMBER (255, 3) NOT NULL
nchar            VARCHAR2 (2000) NOT NULL
ntext            LONG
numeric            NUMBER (255, 3) NOT NULL
nvarchar        VARCHAR2 (2000) NOT NULL
real            FLOAT NOT NULL
smallint        NUMBER (255, 3) NOT NULL
smalldatetime    DATE NOT NULL
smallmoney    NUMBER (255, 3) NOT NULL
sql_variant    LONG
sysname            CHAR(255)
text            LONG
timestamp    RAW (255)
tinyint            NUMBER (255, 3) NOT NULL