本文為您介紹 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)約束下欄位長度的修改一致。