随着数据库国产化的进程,Oracle向KingbaseES数据库的数据迁移需求也越来越多。数据库之间数据迁移的时候,首先遇到的,并且也是最重要的,就是数据类型之间的转换。

下表为KingbaseES和Oracle数据类型的映射表:



Oracle数据类型

KingbaseES 数据类型

备注说明(Oracle)

数值型




1

NUMBER(p,s)

numeric (precision,scale)

保留38位有效数字

2

FLOAT

double

浮点数,Number的子类型

3

BINARY_FLOAT

double

4字节 ,单精度浮点数

4

BINARY_DOUBLE

double

8字节 ,双精度浮点数

字符型




1

CHAR

char

定长字符串

2

VARCHAR2

varchar

变长字符串

3

NCHAR

char

Unicode 编码字符串

4

NVARCHAR2

varchar

Unicode 编码字符串

日期时间




1

DATE

timestamp[(p)][without time zone]

日期类型

2

TIMESTAMP

timestamp [(p)][without time zone]

时间类型

3

TIMESTAMP() WITH TIME ZONE

timestamp [(p)] with time zone

带时区时间类型

4

TIMESTAMP() WITH LOCAL TIME ZONE

timestamp [(p)] with time zone

带本地时区时间类型

5

INTERVAL DAY() TO SECOND

interval day to second

时间间隔

6

INTERVAL YEAR() TO MONTH

interval year to month

时间间隔

大对象类型




1

BLOB

blob

二进制大对象

2

CLOB

clob

字符大对象

3

NCLOB

clob

存储Unicode 数据

其他类型




1

LONG

text

存储可变长字符串

2

RAW

bytea

存储字符型数据

3

LONG RAW

bytea

存储图像、文档、声音等二进制数据

4

ROWID

varchar

长度 64,可以存储A-Z, a-z, 0-9, + /

5

UROWID

varchar

存储Index -organized表 和外部表的地址