Oracle与Greenplum数据类型映射表

2020-04-03 18:04:23 浏览数 (1)

最近有个需求,要将Oracle中一些表迁移到Greenplum中,其中涉及到数据类型的转换,在网上没找到映射表,特查阅资料找到此映射表,并分享出来,来源于《Greenplum从大数据战略到实现》一书。

Oracle与Greenplum不同数据类型的转换方式,如下:

Oracle

Greenplum

说明

VARCHAR2(n)

VARCHAR(n)

在Oracle中n代表字节数,在Greenplum中n代表字符数

CHAR(n)

CHAR(n)

在Oracle中n代表字节数,在Greenplum中n代表字符数

NUMBER(n,m)

NUMERIC(n,m)

number可以转换成numeric,但真实业务中数值类型可以用smalllint、int或bigint等代替,性能会有较大提升

NUMBER(4)

SMALLLINT

NUMBER(9)

INT

NUMBER(18)

BIGINT

NUMBER(n)

NUMERIC(n)

如果n>19,则可以转换成numeric类型

DATE

TIMESTAMP(0)

Oracle和Greenplum都有日期类型,但Oracle的日期类型会同时保存日期和时间,而Greenplum只保存日期

TIMESTAMP WITH LOCAL TIME ZONE

TIMESTAMPTZ

注意:Greenplum中的TIMESTAMPTZ不等同于Oracle中的TIMESTAMP WITH TIME ZONE

CLOB

TEXT

Greenplum中TEXT类型不能超过1GB

BLOBRAW(n)

BYTEA(1 GB limit) Large object

在Oracle中BLOB用于存放非结构化的二进制数据类型,最大可存储128TB;而Greenplum中BYTEA类型最大可以存储1GB,如果有更大的存储要求,可以使用Large Object类型

因greenplum集成了postgreSQL,两者有很多相似之处。若在网上找不到greenplum的资料,建议可以查postgreSQL的相关信息,作为参照。

0 人点赞