このトピックでは、Oracle データベースで実行された ALTER TABLE DDL 操作がデータ転送サービスの DDL 同期コンポーネントによって変換できるものの、Oracle データベースから OceanBase Database の Oracle テナントへのデータ移行中に OceanBase Database の Oracle テナントでは実行できないシナリオについて説明します。
列の型の変更
Oracle データベースと OceanBase Database の Oracle テナントでは、制約付き列の型を変更する場合のターゲット列型に異なる制限があります。詳細については、「制約付き列の型を変更する」をご参照ください。
Oracle データベースと OceanBase Database の Oracle テナントでは、制約なし列の型を変更する場合のターゲット列型に異なる制限があります。詳細については、「制約なし列の型を変更する」をご参照ください。
列の長さの変更
Oracle データベースと OceanBase Database の Oracle テナントでは、制約付き列の型を変更する場合のターゲット列型に異なる制限があります。詳細については、「制約付き列の長さを変更する」をご参照ください。
Oracle データベースと OceanBase Database の Oracle テナントでは、制約なし列の型を変更する場合のターゲット列型に異なる制限があります。詳細については、「制約なし列の長さを変更する」をご参照ください。
新しいパーティションの下にサブパーティションを自動的に作成する
ALTER TABLE DDL 文を使用して作成された新しいパーティションの下に、元のスキーマにある既存のサブパーティションテンプレートに基づいてサブパーティションを自動的に作成することのサポートについて、以下の点に注意してください。
Oracle データベースでサポートされています。
OceanBase Database の Oracle テナントではサポートされていません。サブパーティションは自動的に作成できません。
次に例を示します。
CREATE TABLE SMNOTIFY2
( "REGION" NUMBER(4,0) NOT NULL ENABLE,
"INTIME" DATE DEFAULT sysdate NOT NULL ENABLE
)
PARTITION BY RANGE ("INTIME")
SUBPARTITION BY LIST ("REGION")
SUBPARTITION TEMPLATE (
SUBPARTITION "L_23" VALUES ( 23 ),
SUBPARTITION "L_24" VALUES ( 24 ))
(PARTITION "P_R_202208" VALUES LESS THAN (TO_DATE(' 2022-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
PARTITION "P_R_202209" VALUES LESS THAN (TO_DATE('2022-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
PARTITION "P_R_PMAX" VALUES LESS THAN (TO_DATE('2038-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')));
ALTER TABLE SMNOTIFY2 ADD PARTITION new_partition1 VALUES LESS THAN(TO_DATE('2043-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'));新しいパーティションの下にユーザー定義のサブパーティションを作成する
ALTER TABLE DDL 文を使用して作成された新しいパーティションの下に、元のスキーマにある既存のサブパーティションテンプレートを指定してユーザー定義のサブパーティションを作成することのサポートについて、以下の点に注意してください。
Oracle データベースでサポートされています。サブパーティションテンプレートは無視されます。ユーザー定義のサブパーティションのみが作成されます。
OceanBase Database の Oracle テナントではサポートされていません。
次に例を示します。
CREATE TABLE SMNOTIFY3
( "REGION" NUMBER(4,0) NOT NULL ENABLE,
"INTIME" DATE DEFAULT sysdate NOT NULL ENABLE
)
PARTITION BY RANGE ("INTIME")
SUBPARTITION BY LIST ("REGION")
SUBPARTITION TEMPLATE (
SUBPARTITION "L_23" VALUES ( 23 ))
(PARTITION "P_R_202208" VALUES LESS THAN (TO_DATE(' 2022-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
PARTITION "P_R_202209" VALUES LESS THAN (TO_DATE('2022-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
PARTITION "P_R_PMAX" VALUES LESS THAN (TO_DATE('2038-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')));
ALTER TABLE SMNOTIFY3 ADD PARTITION new_partition2 VALUES LESS THAN(TO_DATE('2044-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))(SUBPARTITION sp6 VALUES (30));