删除分区

本文为您介绍迁移 Oracle 数据库的数据至 OceanBase 数据库 Oracle 租户时,ALTER TABLE DDL 删除分区的支持转换范围。

总览

drop_table_partition:
DROP partition_extended_names
  [ update_index_clauses [ parallel_clause ] ]

partition_extended_names:
{ PARTITION | PARTITIONS }
partition | { FOR ( partition_key_value [, partition_key_value ]... ) }
  [, partition | { FOR ( partition_key_value [, partition_key_value ]... ) } ]...

update_index_clauses:
{ update_global_index_clause
| update_all_indexes_clause
}

update_global_index_clause:
{ UPDATE | INVALIDATE } GLOBAL INDEXES

update_all_indexes_clause:
UPDATE INDEXES
   [ ( index ( update_index_partition
             | update_index_subpartition
             )
        [, index ( update_index_partition
                 | update_index_subpartition
                 )
        ]...
      )
   ]

parallel_clause:
{ NOPARALLEL | PARALLEL [ integer ] }

支持的范围

  • 支持指定分区名删除分区。示例如下:

    ALTER TABLE T DROP PARTITION P0,P1
    ALTER TABLE T DROP PARTITIONS P0,P1
  • 支持 UPDATE GLOBAL INDEXES 更新表中的索引。示例如下:

    ALTER TABLE T DROP PARTITION P0 UPDATE GLOBAL INDEXES;

不支持的范围

  • 不支持指定分区键值删除分区,提示错误。示例如下:

    ALTER TABLE T DROP PARTITION FOR(1);
  • 不支持 INVALIDATE GLOBAL INDEXES 会转化为 UPDATE GLOBAL INDEXES

忽略的属性

说明

如果同步的 DDL 中包含以下属性的定义,则这些属性不会被解析和转换,最终会被忽略。

  • update_all_indexes_clause 子句更新表中的索引,会忽略该 option。

  • parallel_clause 子句更改表中查询和 DML 的默认并行度,会忽略该 option。