有约束的列修改长度

本文为您介绍 Oracle 数据库和 OceanBase 数据库 Oracle 租户对于修改不同约束下的列的长度的不兼容场景。

主键(PRIMAEY KEY)约束下字段长度的修改

如果 主键 列中包含下表中的字段类型,通过 ALTER TABLE table_name MODIFY DDL 对该列进行字段长度的修改操作,Oracle 数据库和 OceanBase 数据库 Oracle 租户的区别如下。

Oracle 数据库的字段类型

允许的操作

OceanBase 数据库 Oracle 租户的字段类型

允许的操作

INTEGER

-

NUMBER(38,0)

-

INT

-

NUMBER(38,0)

-

SMALLINT

-

NUMBER(38,0)

-

BINARY_FLOAT

-

BINARY_FLOAT

-

BINARY_DOUBLE

-

BINARY_DOUBLE

-

DECIMAL

增大、减小

NUMBER

增大

DEC

增大、减小

NUMBER

增大

NUMERIC

增大、减小

NUMBER

增大

REAL

增大、减小

NUMBER

增大

FLOAT

增大、减小

FLOAT

增大

NUMBER

增大、减小

NUMBER

增大

NCHAR

增大、减小

NCHAR

增大

CHAR

增大、减小

CHAR

增大

CHARACTER

增大、减小

CHAR

增大

NVARCHAR2

增大、减小

NVARCHAR2

增大

VARCHAR2

增大、减小

VARCHAR2

增大

VARCHAR

增大、减小

VARCHAR2

增大

RAW

增大、减小

RAW

增大

ROWID

-

ROWID

-

UROWID

-

UROWID

-

TIMESTAMP

增大、减小

TIMESTAMP

增大

TIMESTAMP WITH LOCAL TIME ZONE

增大、减小

TIMESTAMP WITH LOCAL TIME ZONE

增大、减小

DATE

-

DATE

-

INTERVAL YEAR TO MONTH

增大、减小

INTERVAL YEAR TO MONTH

增大、减小

INTERVAL DAY TO SECOND

增大、减小

INTERVAL DAY TO SECOND

增大、减小

唯一键(UNIQUE KEY)约束下字段长度的修改

如果 唯一键 列中包含上述表格中的字段类型,通过 ALTER TABLE table_name MODIFY DDL 对该列进行字段长度的修改操作,Oracle 数据库和 OceanBase 数据库 Oracle 租户的区别与主键(PRIMAEY KEY)约束下字段长度的修改一致。

CHECK 约束下字段长度的修改

如果 CHECK 约束下的列包含上述表格中的字段类型,通过 ALTER TABLE table_name MODIFY DDL 对该列进行字段长度的修改操作,Oracle 数据库和 OceanBase 数据库 Oracle 租户的区别如下。

Oracle 数据库的字段类型

允许的操作

OceanBase 数据库 Oracle 租户的字段类型

允许的操作

INTEGER

-

NUMBER(38,0)

-

INT

-

NUMBER(38,0)

-

SMALLINT

-

NUMBER(38,0)

-

BINARY_FLOAT

-

BINARY_FLOAT

-

BINARY_DOUBLE

-

BINARY_DOUBLE

-

DECIMAL

增大、减小

NUMBER

-

DEC

增大、减小

NUMBER

-

NUMERIC

增大、减小

NUMBER

-

REAL

增大、减小

NUMBER

-

FLOAT

增大、减小

FLOAT

-

NUMBER

增大、减小

NUMBER

-

NCHAR

增大、减小

NCHAR

-

CHAR

增大、减小

CHAR

-

CHARACTER

增大、减小

CHAR

-

NVARCHAR2

增大、减小

NVARCHAR2

-

VARCHAR2

增大、减小

VARCHAR2

-

VARCHAR

增大、减小

VARCHAR2

-

RAW

增大、减小

RAW

-

ROWID

-

ROWID

-

UROWID

-

UROWID

-

TIMESTAMP

增大、减小

TIMESTAMP

-

TIMESTAMP WITH LOCAL TIME ZONE

增大、减小

TIMESTAMP WITH LOCAL TIME ZONE

-

DATE

-

DATE

-

INTERVAL YEAR TO MONTH

增大、减小

INTERVAL YEAR TO MONTH

-

INTERVAL DAY TO SECOND

增大、减小

INTERVAL DAY TO SECOND

-

外键(FOREIGN KEY)约束下字段长度的修改

如果 外键 列中包含表格中的字段类型,通过 ALTER TABLE table_name MODIFY DDL 对该列进行字段长度的修改操作,Oracle 数据库和 OceanBase 数据库 Oracle 租户的区别与主键(PRIMAEY KEY)约束下字段长度的修改一致。