将子分区添加到现有分区表

wrs*_*der 6 oracle oracle-11g partitioning

在 Oracle 11g 中,有没有办法将子分区引入现有的分区表?

我似乎无法找到做正确事情的EXCHANGESPLIT分区的组合。 SPLIT将一个分区拆分成多个分区,而不是引入子分区。有什么建议?

我确实找到了一篇关于通过交换到具有一个分区的表然后使用 对现有非分区表进行分区的现有帖子SPLIT,但无法找出子分区的等效过程。

小智 6

可以使用以下命令将新的子分区添加到现有的分区表中:

ALTER TABLE PART_TEST
modify partition OCT19 
add subpartition OCT19AXCS 
values ('AXCS');
Run Code Online (Sandbox Code Playgroud)


wrs*_*der 1

我想我已经弄清楚了,但这很乏味,需要两个临时表,并且必须一次完成一个分区。有没有更好的办法?

对于原始(源)表中的每个分区

  1. 将分区交换到未分区的临时表 ( alter table source exchange partition X with table TEMP1)
  2. 将临时表交换为第二个临时表,按与目标表中的子分区相同的键进行分区,并具有单个默认分区 ( alter table TEMP2 exchange partition Y with table TEMP1)
  3. 将分区临时表交换到目标表 ( alter table target exchange partition X with table TEMP2)
  4. 目标表现在有分区 X 和子分区 Y - 将子分区 Y 拆分为所需的子分区 ( alter table target split subpartition Y ....)