ALTER TABLE…DROP SUBPARTITION 命令用于刪除子分區及存儲在子分區內的數據。

語法介紹

使用ALTER TABLE…DROP SUBPARTITION 命令來刪除子分區定義及子分區內的數據。語法如下:
ALTER TABLE table_name DROP SUBPARTITION subpartition_name;

描述

ALTER TABLE…DROP SUBPARTITION 命令用于刪除子分區及存儲在子分區內的數據。要使用DROP SUBPARTITION 子句,您必須是分區根的擁有者、擁有表的小組成員或有超級用戶或管理員的權限。

參數

參數 參數說明
table name 分區表的名稱(可以采用模式限定的方式引用)。
subpartition name 要刪除的子分區名稱。

示例 – 刪除子分區

下列示例刪除了表sales中的一個子分區。通過使用下列命令來創建表sales:
CREATE TABLE sales
(
  dept_no     number,
  part_no     varchar2,
  country     varchar2(20),
  date    date,
  amount  number
)
PARTITION BY RANGE(date)
  SUBPARTITION BY LIST (country)
  (
    PARTITION first_half_2012 VALUES LESS THAN('01-JUL-2012')
    (
      SUBPARTITION europe VALUES ('ITALY', 'FRANCE'),
      SUBPARTITION americas VALUES ('CANADA', 'US'),
      SUBPARTITION asia VALUES ('PAKISTAN', 'INDIA')
    ),
    PARTITION second_half_2012 VALUES LESS THAN('01-JAN-2013') 
  );
查詢視圖ALL_TAB_SUBPARTITIONS 顯示了子分區的名稱:
acctg=# SELECT subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS;
 subpartition_name |     high_value      
-------------------+---------------------
 europe            | 'ITALY', 'FRANCE'   
 americas          | 'CANADA', 'US'      
 asia              | 'PAKISTAN', 'INDIA' 
(3 rows)
要從表sales中刪除子分區americas,就要先調用下列命令:
ALTER TABLE sales DROP SUBPARTITION americas;
查詢視圖ALL_TAB_SUBPARTITIONS顯示了子分區已被成功刪除:
acctg=# SELECT subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS;
 subpartition_name |     high_value      
-------------------+---------------------
 europe            | 'ITALY', 'FRANCE'
 asia              | 'PAKISTAN', 'INDIA'
(2 rows)