2017-03-16 65 views
0

我試圖子分區添加到現有的分區,但我收到此錯誤:如果我嘗試一個子分區添加到如何修改分區以將多個子分區添加到此現有分區?

Oracle Error: ORA-14158

Error Description: Too many subpartition descriptions

Error Cause: CREATE TABLE or CREATE INDEX contained too many subpartition descriptions; maximum number of subpartitions is 1048575.

Action: Reduce number of subpartitions to not exceed 1024K-1.

現有它的工作原理與此查詢:

ALTER TABLE table_name MODIFY PARTITION partition_name ADD 
SUBPARTITION subpartition_name VALUES LESS THAN (TO_DATE('01-03-2018' , 'DD-MM-YYYY')); 

但如果我嘗試到多個子分區添加到這個現有的分區它給上面提到的錯誤:

這裏是它的查詢:

ALTER TABLE table_name MODIFY PARTITION partition_name ADD 
SUBPARTITION subpartition_name1 VALUES LESS THAN (TO_DATE('01-03-2018' , 'DD-MM-YYYY')), 
SUBPARTITION subpartition_name2 VALUES LESS THAN (TO_DATE('01-04-2018' , 'DD-MM-YYYY')); 

儘管我沒有創建超過1024K-1的子分區,但我仍然得到了太多的子分區描述錯誤。

這裏是CREATE TABLE語句:

   **CREATE TABLE HTL_ALLOTMENT_TRACE ( 

        allotmentTraceID  NUMBER(19)   NOT NULL, 

        organizationID  NUMBER(19)   NOT NULL, 

        locationID   NUMBER(10)   NOT NULL, 

        traceBusinessDate  DATE     NOT NULL       
       ) 

        PARTITION BY LIST (organizationID) 

        SUBPARTITION BY RANGE (traceBusinessDate) 

         (
         PARTITION HALMTTRC_1 VALUES (1)   
        )** 

如果任何人有什麼建議,請讓我知道。

+0

請提供您的CREATE TABLE語句。 –

+0

CREATE TABLE HTL_ALLOTMENT_TRACE( allotmentTraceID NUMBER(19)NOT NULL, organizationID NUMBER(19)NOT NULL, locationID NUMBER(10)NOT NULL, traceBusinessDate DATE NOT NULL \t \t ) \t \t \t \t \t \t PARTITION BY LIST(organizationID) \t \t \t \t \t \t SUBPARTITION BY RANGE(traceBusinessDate) \t \t \t \t \t \t( \t \t \t \t \t \t PARTITION HALMTTRC_1 VALUES(1) \t \t \t \t \t \t) –

+0

請編輯您的問題,而不是把它變成註釋 - 這是相當困難的閱讀。 –

回答

0

1024K-1分區(或子分區)的限制不適用於表中的實際分區數。 Oracle考慮所有可能分區的全部範圍。

例如,如果你有一臺這樣的

CREATE TABLE MY_TABLE 
(
    END_TIME TIMESTAMP 
) 
PARTITION BY RANGE (END_TIME) 
INTERVAL (INTERVAL '1' DAY) 
(
    PARTITION P_1 VALUES LESS THAN (TIMESTAMP '2017-03-01 00:00:00'), 
    PARTITION P_2 VALUES LESS THAN (TIMESTAMP '2017-04-01 00:00:00') 
); 

那麼甲骨文將考慮爲1048575子分區限制31個分區 - 雖然你的表只有兩個分區。

+0

我只是在修改分區時遇到這個問題。如果我用子分區創建一個新的分區5年,那麼它工作正常。不知道問題來自哪裏。 –