本文为您介绍迁移 Oracle 数据库的数据至 OceanBase 数据库 Oracle 租户的数据类型转换。
支持的转换类型
Oracle 数据库 | OceanBase 数据库 Oracle 租户 | 描述 |
INTEGER | NUMBER(38,0) | |
INT | NUMBER(38,0) | |
SMALLINT | NUMBER(38,0) | |
BINARY_FLOAT | BINARY_FLOAT | 二进制精度浮点数,是一种 32 位单精度浮点数数据类型。Oracle 数据库和 OceanBase 数据库 Oracle 租户一致。 |
BINARY_DOUBLE | BINARY_DOUBLE | 二进制精度浮点数,是一种 64 位双精度浮点数数据类型。Oracle 数据库和 OceanBase 数据库 Oracle 租户一致。 |
DECIMAL(p,s) | NUMBER(p,s) | |
DEC(p,s) | NUMBER(p,s) | |
NUMERIC(p,s) | NUMBER(p,s) | |
REAL(p,s) | NUMBER(p,s) | |
FLOAT (p) | FLOAT (p) | NUMBER 数据类型的子类型。二进制精度范围为 [1,126]。FLOAT 不是浮点数。 Oracle 数据库和 OceanBase 数据库 Oracle 租户一致。 |
NUMBER[(p,s)] | NUMBER(p,s) | OceanBase 数据库 Oracle 租户:存储变长、十进制精度的定点数。也可以存储浮点数,此时 NUMBER 没有 p 和 s 参数。 Oracle 数据库:p 的取值范围为 1 ~ 38,s 的取值范围为 -84 ~ 127。 |
NCHAR(size) | NCHAR(size) | 参数 size 的取值范围为 [1,2000],默认值和最小值为 1。存储大小为 size 字节的两倍。 |
CHAR (size [BYTE | CHAR]) | CHAR (size [BYTE | CHAR]) | 参数 size 的取值范围为 [1,2000],默认值和最小值为 1。存储大小为 size 个字节或字符。 |
CHARACTER(n) | CHAR(n) | |
NVARCHAR2(size) | NVARCHAR2(size) | 参数 size 的取值范围为 [1,32767]。字节的存储大小是所输入字符个数的两倍。 |
VARCHAR2(size [BYTE | CHAR]) | VARCHAR2(size [BYTE | CHAR]) | 参数 size 的取值范围为 [1,32767]。存储大小为输入数据的字节或字符的实际长度,而不是 size 个字节或字符。 |
VARCHAR(size) | VARCHAR2(size) | |
RAW(size) | RAW(size) | OceanBase 数据库 Oracle 租户:以字节为单位。如果作为数据库中表的列,该参数最大支持存储 2000 字节的数据。如果作为 PL 变量,该参数最大支持存储 32767 字节的数据。 Oracle 数据库:最大支持 2000 字节 |
LONG | CLOB | OceanBase 数据库 Oracle 租户:48 MB Oracle 数据库:LONG 4GB -1 |
LONG RAW | BLOB | OceanBase 数据库 Oracle 租户:48 MB Oracle 数据库: LONGRAW Size up to 2 gigabytes |
ROWID | ROWID | 表中一行的唯一地址(以 64 为基数的字符串表示)。 |
UROWID | UROWID | 索引组织表的行(以 64 为基数的字符串表示)的逻辑地址。 |
TIMESTAMP (fractional_seconds_precision) | TIMESTAMP (fractional_seconds_precision) | OceanBase 数据库 Oracle 租户:范围和精确度取决于 scale 的值,取值范围为 [0,9]。最大值为 9(纳秒,即秒数精确至小数点 9 位),最小值为 0(秒,即秒数精确至小数点 0 位),默认值为 6。 Oracle 数据库:大小为 7 或 11 字节,取决于精度。 |
TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE | TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE | OceanBase 数据库 Oracle 租户:阈值和精确度取决于 scale 的值,取值范围为 [0,9]。最大值为 9 (纳秒,即秒数精确至小数点 9 位),最小值为 0(秒,即秒数精确至小数点 0 位),默认值为 6。 Oracle 数据库:大小固定为13字节。 |
TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE | TIMESTAMP[(fractional_seconds_precision)] WITH LOCAL TIME ZONE | |
DATE | DATE | OceanBase 数据库 Oracle 租户:取值范围为 0001-01-01 00:00:00~9999-12-31 23:59:59。 Oracle 数据库:有效日期范围:从公元前 4712 年 1 月 1 日到公元 9999 年 12 月 31 日。大小固定为 7 字节。 |
INTERVAL YEAR [(year_precision)] TO MONTH | INTERVAL YEAR [(year_precision)] TO MONTH | 5 bytes |
INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)] | INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)] | 11 bytes |
BLOB | BLOB | |
CLOB | CLOB | |
NCLOB | CLOB |
不支持的转换类型
Oracle 数据库 | OceanBase 数据库 Oracle 租户 |
TIMESTAMP_UNCONSTRAINED | - |
TIMESTAMP_TZ_UNCONSTRAINED | - |
TIMESTAMP_LTZ_UNCONSTRAINED | - |
YMINTERVAL_UNCONSTRAINED | - |
DSINTERVAL_UNCONSTRAINED | - |
YEAR | - |
MONTH | - |
DAY | - |
HOUR | - |
MINUTE | - |
SECOND | - |
TIMEZONE_HOUR | - |
TIMEZONE_MINUTE | - |
TIMEZONE_REGION | - |
TIMEZONE_ABBR | - |