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