Oracle

向現有分區表添加子分區

  • May 25, 2017

在 Oracle 11g 中,有沒有辦法將子分區引入現有的分區表?

我似乎找不到做正確事情 的組合EXCHANGE和分區。會將一個分區拆分為多個分區,而不是引入子分區。有什麼建議?SPLIT``SPLIT

我確實找到了一篇關於通過交換到具有一個分區的表然後使用來對現有的非分區表進行分區的現有帖SPLIT​​子,但無法找出子分區的等效過程。

可以使用以下命令將新的子分區添加到現有分區表中:

ALTER TABLE PART_TEST
modify partition OCT19 
add subpartition OCT19AXCS 
values ('AXCS');

我想我想通了,但這很乏味,需要兩個臨時表,並且必須一次完成一個分區。有沒有更好的辦法?

對於原始(源)表中的每個分區

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

引用自:https://dba.stackexchange.com/questions/52423