与Oracle的字段映射关系

PolarDB PostgreSQL版(兼容Oracle)为简化从Oracle数据库的迁移过程,在SQL层面支持与Oracle同名的数据类型。这意味着您可以直接使用熟悉的Oracle数据类型,其含义与用法在PolarDB PostgreSQL版(兼容Oracle)中是等价的。下面详细列出了OraclePolarDB PostgreSQL版(兼容Oracle)使用类型以及其底层对应的PostgreSQL原生类型之间的映射关系。

数据类型映射表

说明

下表中的映射关系是双向的,即从OraclePolarDB PostgreSQL版(兼容Oracle)的映射,与从PolarDB PostgreSQL版(兼容Oracle)Oracle的反向映射关系一致。

类型分类

Oracle 数据类型

PolarDB for Oracle 使用类型

底层 PostgreSQL 类型

说明

字符串类型

CHAR(n)

CHAR(n)

character

定长字符串,使用空格填充。

VARCHAR(n)

VARCHAR(n)

character varying

变长字符串,有长度限制。

VARCHAR2(n)

VARCHAR2(n)

character varying

变长字符串,有长度限制。

NCHAR(n)

NCHAR(n)

character

定长字符串,使用空格填充。

NCHAR2(n)

NCHAR2(n)

character

定长字符串,使用空格填充。

LONG

LONG

text

可变长度的长字符串。

CLOB

CLOB

text

可变长度的字符大对象,无长度限制。

数字类型

NUMBER(p,s)

NUMBER(p,s)

numeric

精确数值,可指定精度。

BINARY_FLOAT

BINARY_FLOAT

real

4字节单精度浮点数,精度为6位十进制。

BINARY_DOUBLE

BINARY_DOUBLE

double precision

8字节双精度浮点数,精度为15位十进制。

时间类型

DATE

DATE

date

日期和时间。

TIMESTAMP[(p)]

TIMESTAMP[(p)]

timestamp[(p)] without time zone

日期和时间,不含时区信息。

TIMESTAMP[(p)] WITH TIME ZONE

TIMESTAMP[(p)] WITH TIME ZONE

timestamp[(p)] with time zone

日期和时间,包含时区信息。

TIMESTAMP[(p)] WITH LOCAL TIME ZONE

TIMESTAMP[(p)] WITH LOCAL TIME ZONE

timestamp[(p)] with time zone

日期和时间,包含本地时区信息。

INTERVAL YEAR [(p)] TO MONTH

INTERVAL YEAR [(p)] TO MONTH

interval

时间间隔。

INTERVAL DAY [(p)] TO SECOND [(s)]

INTERVAL DAY [(p)] TO SECOND [(s)]

interval

时间间隔。

二进制类型

RAW

RAW

bytea

变长二进制串。

LONG RAW

LONG RAW

bytea

变长二进制串。

BLOB

BLOB

bytea

二进制大对象,用于存储大型二进制数据。

其他类型

ROWID

ROWID

rowid

行的物理地址。

UROWID

UROWID

urowid

行的逻辑地址,支持索引组织表。

BFILE

BFILE

bfile

指向存储在外部文件的二进制数据指针。