更新时间:2025-08-27 GMT+08:00

Oracle与StarRocks字段类型映射

Migration会根据源端的字段类型按默认规则转换成目的端字段类型,并以此完成自动建表和实时同步。

字段类型映射规则

当源端为Oracle,目的端为StarRocks时,支持的字段类型请参见下表,以确保数据完整同步到目的端。

表1 Oracle > StarRocks支持的字段类型

类别

数据类型(Oracle)

数据类型(StarRocks)

说明

字符串

CHAR(M)

CHAR(M)

定长字符串,空格填充。

NCHAR(M)

CHAR(M)

定长字符串,空格填充。

VARCHAR2(M)

VARCHAR(M)

变长字符串。

NVARCHAR2(M)

VARCHAR(M)

变长字符串。

ROWID

STRING

变长字符串。

UROWID

STRING

变长字符串。

数值

NUMBER(M,D)

DECIMAL(M,D)/STRING

可选择精度的精确数字。

目标端配置-高级配置可设置参数targetVersion指定StarRocks版本号。

当targetVersion >= 1.18.0时, M最大值为38。

当targetVersion < 1.18.0时,M最大值为27。

当M超过最大值时,由STRING承载。

DECIMAL(M,D)

DECIMAL(M,D)/STRING

与NUMBER等效。

NUMERIC(M,D)

DECIMAL(M,D)/STRING

与NUMBER等效。

FLOAT

DOUBLE/STRING

当M > 53时,Oracle FLOAT精度超过Doris DOUBLE类型精度,由STRING承载。

当M <= 53时,为DOUBLE。

BINARY_FLOAT

FLOAT

单精度浮点数(4字节)。

BINARY_DOUBLE

DOUBLE

双精度浮点数(8字节)。

日期时间

DATE

DATETIME

日期时间。

TIMESTAMP(M)

DATETIME/STRING

日期时间

M <= 6时,为DATETIME。

M > 6,为STRING。

TIMESTAMP(M) WITH TIME ZONE

DATETIME/STRING

日期时间。

M <= 6时,为DATETIME。

M > 6,为STRING。

TIMESTAMP(M) WITH LOCAL TIME ZONE

DATETIME/STRING

日期时间。

M <= 6时,为DATETIME。

M > 6,为STRING。

二进制

BLOB

VARCHAR(M)

目标端配置-高级配置可设置参数targetVersion指定StarRocks版本号。

targetVersion >= 3.0.0,将转换为VARBINARY,M = 1048576。

targetVersion < 3.0.0 且 targetVersion >= 2.1,将转换为VARCHAR,M = 1048576。

targetVersion < 2.1时,将转换为VARCHAR,M = 65533。

CLOB

VARCHAR(M)

同BLOB。

NCLOB

VARCHAR(M)

同BLOB。

RAW

VARCHAR(M)

同BLOB。

LONG

VARCHAR(M)

同BLOB。

LONG RAW

VARCHAR(M)

同BLOB。