[英]Partition existing table using interval partitioning in Oracle
我想使用間隔分區和列表子分區在oracle 12中對現有表進行分區。 我發現了一些有關如何隨后在范圍內進行分區的信息,但沒有使用間隔分區。 我想告訴數據庫第一個分區及其具有的值(日期),他將為表中的所有數據集自動創建其余分區。
ALTER TABLE TEST_TABLE MODIFY
PARTITION BY RANGE(TESTDATE) INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
SUBPARTITION BY LIST(COMPANY_NR) (
PARTITION p1 VALUES LESS THAN (TO_DATE('01.01.2018 00:00:00', 'DD.MM.YYYY HH24:MI:SS'))
(
SUBPARTITION P_1 VALUES(1),
SUBPARTITION P_2 VALUES(2)
)
);
這樣可以自動創建具有間隔的分區嗎? 我在任何地方都找不到任何信息。 如果是的話,我在這里做錯了什么? 它說我缺少子分區關鍵字。
您必須像這樣使用SUBPARTITION TEMPLATE:
CREATE TABLE TEST_TABLE (...)
PARTITION BY RANGE (TESTDATE) INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
SUBPARTITION BY LIST (COMPANY_NR)
SUBPARTITION TEMPLATE
(
SUBPARTITION P_1 VALUES (1),
SUBPARTITION P_2 VALUES (2)
SUBPARTITION P_others VALUES (DEFAULT)
)
(
PARTITION p1 VALUES LESS THAN (DATE '2018-01-01')
);
您可以在現有表上更改子分區模板,請參閱修改子分區模板。
但是,如果您想更改分區,則必須使用DBMS_REDEFINITION包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.