本文为您介绍迁移 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  | -  |