本文为您介绍 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)约束下字段长度的修改一致。