云数据库 GAUSSDB-SQL的基本元素:数据类型

时间:2024-05-09 09:16:27

数据类型

表1 数值类型

序号

Oracle数据类型

GaussDB数据库 是否支持

差异

1

NUMBER [ ( p [ , s ] ) ]

支持,有差异

精度和实现存在差异。

2

FLOAT [ ( p ) ]

支持

-

3

LONG

不支持

-

4

BINARY_FLOAT

不支持

-

5

BINARY_DOUBLE

支持

-

表2 日期时间类型

序号

Oracle数据类型

GaussDB 数据库是否支持

差异

1

DATE

支持,有差异

精度有差异。

2

TIMESTAMP [ ( fractional_seconds_precision ) ]

支持

-

3

TIMESTAMP [ ( fractional_seconds_precision ) ] WITH TIME ZONE

支持,有差异

GaussDB的timestamptz等价于Oracle的timestampwithloacltimezone,缺少Oracle对应的timestamptz类型。

时区更新:部分国家或地区因为政治、经济、战争等因素经常会更新时区信息, 数据库系统也因此常常需要同步修改时区文件以确保时间内容的正确性。

GaussDB时区类型目前只涉及 timestamp with timezone, 当新的时区文件生效时,不会对已有的老数据进行变更,新数据会随时区文件信息进行同步调整。在这点上和O的同类型数据能力有差异。

4

TIMESTAMP [ ( fractional_seconds_precision ) ] WITH LOCAL TIME ZONE

不支持

-

5

INTERVAL YEAR [ ( year_precision ) ] TO MONTH

支持

-

6

INTERVAL DAY [ ( day_precision ) ] TO SECOND [ ( fractional_seconds_precision ) ]

支持

-

表3 字符类型

序号

Oracle数据类型

GaussDB数据库是否支持

差异

1

VARCHAR2 ( size [ BYTE | CHAR ] )

支持,有差异

size单位为字节,最大10MB。

2

NVARCHAR2 ( size )

支持,有差异

VARCHAR2(n)类型的别名。

3

CHAR [ ( size [ BYTE | CHAR ] ) ]

支持,有差异

size单位为字节,最大10MB。

4

NCHAR [ ( size ) ]

支持,有差异

size单位为字节,最大10MB。

5

CLOB

支持,有差异

不支持定位器概念。

6

NCLOB

不支持

-

表4 二进制类型

序号

Oracle数据类型

GaussDB数据库是否支持

差异

1

RAW ( size )

支持,有差异

size是指字节长度建议值,不会用于校验输入raw类型的字节长度。

2

LONG RAW

不支持

-

3

BLOB

支持,有差异

-

4

BFILE

不支持

-

表5 ROWID类型

序号

Oracle数据类型

GaussDB数据库是否支持

差异

1

ROWID

不支持

-

2

UROWID

不支持

-

表6 用户自定义类型

序号

Oracle数据类型

GaussDB数据库是否支持

差异

1

对象类型

不支持

-

2

REF数据类型

不支持

-

3

可变数组

支持

-

4

嵌套表

支持

-

表7 伪类型

序号

Oracle数据类型

GaussDB数据库是否支持

差异

1

anytype

不支持

-

2

anydata

不支持

-

3

anydataset

不支持

-

表8 xml类型

序号

Oracle数据类型

GaussDB数据库是否支持

差异

1

XMLType

支持,有差异

不支持部分操作。

2

URIType

不支持

-

表9 空间类型

序号

Oracle数据类型

GaussDB数据库是否支持

差异

1

SDO_GEOMETRY

不支持

-

2

SDO_TOPO_GEOMETRY

不支持

-

3

SDO_GEORASTER

不支持

-

表10 锁模式

级别

Oracle锁模式

GaussDB锁模式

备注锁模式

-

-

NULL

GaussDB的NULL表示未被赋予锁,与Oracle的0级锁对应。

0

none

INVALID

GaussDB的INVALID表示被赋予了非法锁。仅在运行过程中出现了GaussDB无法识别的锁时会被赋予INVALID锁。

1

null

AccessShare

-

2

RS

RowShare

-

3

RX

RowExclusive

-

4

S

ShareUpdateExclusive

-

5

SRX

Share

-

6

\

ShareRowExclusive

-

7

X

Exclusive

-

8

\

AccessExclusive

-

support.huaweicloud.com/productdesc-gaussdb/gaussdb-39-0003.html