随着数据库国产化的进程,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表 和外部表的地址 |