删除分区数据

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

总览

truncate_partition_subpart:
TRUNCATE { partition_extended_names | subpartition_extended_names }
   [ { DROP [ ALL ] | REUSE } STORAGE ]
   [ update_index_clauses [ parallel_clause ] ] [ CASCADE ]

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

subpartition_extended_names:
{ SUBPARTITION | SUBPARTITIONS }
subpartition | { FOR ( subpartition_key_value [, subpartition_key_value ]... ) }
  [, subpartition | { FOR ( subpartition_key_value [, subpartition_key_value ]... ) } ]...

update_index_clauses:
{ { UPDATE | INVALIDATE } GLOBAL INDEXES
| UPDATE INDEXES
   [ ( index ( update_index_partition
             | update_index_subpartition
             )
        [, index ( update_index_partition
                 | update_index_subpartition
                 )
        ]...
      )
   ]
}

parallel_clause:
{ NOPARALLEL | PARALLEL [ integer ] }

支持的范围

  • 支持通过指定分区名称或子分区名称的方式删除分区或子分区中的行。示例如下:

    ALTER TABLE T TRUNCATE PARTITION P0;
    ALTER TABLE T TRUNCATE PARTITIONS P0,P1;
    ALTER TABLE T TRUNCATE SUBPARTITION SP0;
    ALTER TABLE T TRUNCATE SUBPARTITIONS SP0,SP1;
  • 支持 UPDATE GLOBAL INDEXES 更新表中的索引。

不支持的范围

不支持 INVALIDATE GLOBAL INDEXES,会转化为 UPDATE GLOBAL INDEXES

忽略的属性

说明

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

  • UPDATE INDEXES 属性,会忽略。

  • CASCADE 属性,会忽略。

  • { DROP [ ALL ] | REUSE } STORAGE 子句指定行释放所有空间,会忽略。

  • parallel_clause 子句修改表中查询和 DML 的默认并行度。

  • 指定分区键值或子分区键值的方式删除分区中的行。