All Products
Search
Document Center

ApsaraDB for OceanBase (Deprecated):Ketidaksesuaian ALTER TABLE

Last Updated:Jul 02, 2025

Topik ini menjelaskan skenario di mana operasi DDL ALTER TABLE yang dilakukan pada database Oracle dapat dikonversi oleh komponen sinkronisasi DDL dari layanan transmisi data, tetapi tidak dapat dilakukan di tenant Oracle dari OceanBase Database selama migrasi data dari database Oracle ke tenant Oracle OceanBase Database.

Mengubah tipe kolom

  • Database Oracle dan tenant Oracle dari OceanBase Database memiliki batasan berbeda terkait tipe kolom target untuk mengubah tipe kolom yang dibatasi. Untuk informasi lebih lanjut, lihat Mengubah Tipe Kolom yang Dibatasi.

  • Database Oracle dan tenant Oracle dari OceanBase Database memiliki batasan berbeda terkait tipe kolom target untuk mengubah tipe kolom yang tidak dibatasi. Untuk informasi lebih lanjut, lihat Mengubah Tipe Kolom yang Tidak Dibatasi.

Mengubah panjang kolom

  • Database Oracle dan tenant Oracle dari OceanBase Database memiliki batasan berbeda terkait tipe kolom target untuk mengubah panjang kolom yang dibatasi. Untuk informasi lebih lanjut, lihat Mengubah Panjang Kolom yang Dibatasi.

  • Database Oracle dan tenant Oracle dari OceanBase Database memiliki batasan berbeda terkait tipe kolom target untuk mengubah panjang kolom yang tidak dibatasi. Untuk informasi lebih lanjut, lihat Mengubah Panjang Kolom yang Tidak Dibatasi.

Membuat subpartisi secara otomatis di bawah partisi baru

Perhatikan hal-hal berikut terkait dukungan untuk membuat subpartisi secara otomatis, berdasarkan template subpartisi yang ada di skema asli, di bawah partisi baru yang dibuat menggunakan pernyataan ALTER TABLE DDL:

  • Didukung di database Oracle.

  • Tidak didukung di tenant Oracle dari OceanBase Database. Subpartisi tidak dapat dibuat secara otomatis.

Berikut adalah contohnya:

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'));

Membuat subpartisi yang ditentukan pengguna di bawah partisi baru

Perhatikan hal-hal berikut terkait dukungan untuk membuat subpartisi yang ditentukan pengguna, berdasarkan template subpartisi yang ada di skema asli, di bawah partisi baru yang dibuat menggunakan pernyataan ALTER TABLE DDL:

  • Didukung di database Oracle. Template subpartisi diabaikan. Hanya subpartisi yang ditentukan pengguna yang dibuat.

  • Tidak didukung di tenant Oracle dari OceanBase Database.

Berikut adalah contohnya:

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));