このトピックでは、異なる制約を持つ列のデータ型を変更する際に、Oracle データベースと OceanBase Database の Oracle テナント間の非互換性について説明します。
次の表で、OceanBase Database の Oracle テナントでサポートされている列のターゲット型は、型マッピングの結果です。
次の表で、ハイフン(-)は「なし」を、All はすべての型を示します。
主キー列の型を変更する
次の表は、ALTER TABLE table_name MODIFY DDL 文を使用して PRIMARY KEY 列の型を変更する場合の、Oracle データベースと OceanBase Database の Oracle テナント間の非互換性について説明しています。
Oracle データベースの列型 | サポートされているターゲット型 | OceanBase Database の Oracle テナントの列型 | サポートされているターゲット型 |
INTEGER | All | NUMBER(38,0) | - |
INT | All | NUMBER(38,0) | - |
SMALLINT | All | NUMBER(38,0) | - |
BINARY_FLOAT | All | BINARY_FLOAT | - |
BINARY_DOUBLE | All | BINARY_DOUBLE | - |
DECIMAL | All | NUMBER | - |
DEC | All | NUMBER | - |
NUMERIC | All | NUMBER | - |
REAL | All | NUMBER | - |
FLOAT | All | FLOAT | - |
NUMBER | All | NUMBER | - |
NCHAR | All | NCHAR | - |
CHAR | All | CHAR | - |
CHARACTER | All | CHAR(n) | - |
NVARCHAR2 | All | NVARCHAR2(size) | - |
VARCHAR2 | All | VARCHAR2 | - |
VARCHAR | All | VARCHAR2 | - |
RAW | All | RAW | - |
ROWID | All | ROWID | UROWID |
UROWID | All | UROWID | ROWID |
TIMESTAMP | All | TIMESTAMP | - |
DATE | All | DATE | - |
INTERVAL YEAR TO MONTH | All | INTERVAL YEAR TO MONTH | - |
INTERVAL DAY TO SECOND | All | INTERVAL DAY TO SECOND | - |
ユニークキー列の型を変更する
UNIQUE KEY 列の型を ALTER TABLE table_name MODIFY DDL 文を使用して変更する場合の、Oracle データベースと OceanBase Database の Oracle テナント間の非互換性は、PRIMARY KEY 列の型の変更の場合と同じです。
CHECK 制約を持つ列の型の変更
次の表は、ALTER TABLE table_name MODIFY DDL 文を使用して CHECK 制約を持つ列の型を変更する場合の、Oracle データベースと OceanBase Database の Oracle テナント間の非互換性を示しています。確認
Oracle データベースの列型 | サポートされているターゲット型 | OceanBase Database の Oracle テナントの列型 | サポートされているターゲット型 |
INTEGER | NUMERIC\NUMBER\DECIMAL\DEC\FLOAT\REAL\INT\SMALLINT | NUMBER(38,0) | - |
INT | NUMERIC\NUMBER\DECIMAL\DEC\FLOAT\REAL\INTEGER\SMALLINT | NUMBER(38,0) | - |
SMALLINT | NUMERIC\NUMBER\DECIMAL\DEC\FLOAT\REAL\INTEGER\INT | NUMBER(38,0) | - |
BINARY_FLOAT | - | BINARY_FLOAT | - |
BINARY_DOUBLE | - | BINARY_DOUBLE | - |
DECIMAL | NUMERIC\NUMBER\DEC\FLOAT\REAL\INT\SMALLINT\INTEGER | NUMBER | - |
DEC | NUMERIC\NUMBER\DECIMAL\FLOAT\REAL\INT\SMALLINT\INTEGER | NUMBER | - |
NUMERIC | NUMBER\DEC\DECIMAL\FLOAT\REAL\INT\SMALLINT\INTEGER | NUMBER | - |
REAL | NUMBER\DEC\DECIMAL\FLOAT\INT\SMALLINT\INTEGER | NUMBER | - |
FLOAT | NUMERIC\NUMBER\DEC\DECIMAL\REAL\INT\SMALLINT\INTEGER | FLOAT | - |
NUMBER | NUMERIC\DEC\DECIMAL\FLOAT\REAL\INT\SMALLINT\INTEGER | NUMBER | - |
NCHAR | CHAR\CHARACTER\NVARCHAR2\VARCHAR2\VARCHAR | NCHAR | - |
CHAR | NCHAR\CHARACTER\NVARCHAR2\VARCHAR2\VARCHAR | CHAR | - |
CHARACTER | NCHAR\CHAR\NVARCHAR2\VARCHAR2\VARCHAR | CHAR | - |
NVARCHAR2 | NCHAR\CHAR\CHARACTER\VARCHAR2\VARCHAR | NVARCHAR2 | - |
VARCHAR2 | NCHAR\CHAR\CHARACTER\NVARCHAR2\VARCHAR | VARCHAR2 | - |
VARCHAR | NCHAR\CHAR\CHARACTER\NVARCHAR2\VARCHAR2 | VARCHAR2 | - |
RAW | - | RAW | - |
ROWID | - | ROWID | UROWID |
UROWID | - | UROWID | ROWID |
TIMESTAMP | DATE | TIMESTAMP | - |
TIMESTAMP WITH LOCAL TIME ZONE | - | TIMESTAMP WITH LOCAL TIME ZONE | - |
DATE | TIMESTAMP | DATE | - |
INTERVAL YEAR TO MONTH | - | INTERVAL YEAR TO MONTH | - |
INTERVAL DAY TO SECOND | - | INTERVAL DAY TO SECOND | - |
外部キー列の型の変更
次の表に、ALTER TABLE table_name MODIFY DDL 文を使用した FOREIGN KEY 列の型の変更に関して、Oracle データベースと OceanBase Database の Oracle テナント間の非互換性を示します。
Oracle データベースの列の型 | サポートされているターゲット型 | OceanBase Database の Oracle テナントの列の型 | サポートされているターゲット型 |
INTEGER | NUMERIC\NUMBER\DECIMAL\DEC\FLOAT\REAL\INT\SMALLINT | NUMBER(38,0) | - |
INT | NUMERIC\NUMBER\DECIMAL\DEC\FLOAT\REAL\INTEGER\SMALLINT | NUMBER(38,0) | - |
SMALLINT | NUMERIC\NUMBER\DECIMAL\DEC\FLOAT\REAL\INTEGER\INT | NUMBER(38,0) | - |
BINARY_FLOAT | - | BINARY_FLOAT | - |
BINARY_DOUBLE | - | BINARY_DOUBLE | - |
DECIMAL | NUMERIC\NUMBER\DEC\FLOAT\REAL\INT\SMALLINT\INTEGER | NUMBER | - |
DEC | NUMERIC\NUMBER\DECIMAL\FLOAT\REAL\INT\SMALLINT\INTEGER | NUMBER | - |
NUMERIC | NUMBER\DEC\DECIMAL\FLOAT\REAL\INT\SMALLINT\INTEGER | NUMBER | - |
REAL | NUMBER\DEC\DECIMAL\FLOAT\INT\SMALLINT\INTEGER | NUMBER | - |
FLOAT | NUMERIC\NUMBER\DEC\DECIMAL\REAL\INT\SMALLINT\INTEGER | FLOAT | - |
NUMBER | NUMERIC\DEC\DECIMAL\FLOAT\REAL\INT\SMALLINT\INTEGER | NUMBER | - |
NCHAR | CHAR\CHARACTER | NCHAR | - |
CHAR | NCHAR\CHARACTER | CHAR | - |
CHARACTER | NCHAR\CHAR | CHAR | - |
NVARCHAR2 | VARCHAR2\VARCHAR | NVARCHAR2 | - |
VARCHAR2 | NVARCHAR2\VARCHAR | VARCHAR2 | - |
VARCHAR | NVARCHAR2\VARCHAR2 | VARCHAR2 | - |
RAW | - | RAW | - |
ROWID | - | ROWID | UROWID |
UROWID | - | UROWID | ROWID |
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 | - |