2017-03-16 8 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.

私はそれがこのクエリで動作し、既存の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

( allotmentTraceID NUMBER(19)NOT NULL、 organizationID NUMBER(19)NULL NOT、 locationID NUMBER(10)NOT NULL、\t \t NULL NOT traceBusinessDateのDATE)表HTL_ALLOTMENT_TRACEをCREATE \t \t \t \t \t \t隔壁によってRANGE BY LIST(organizationID) \t \t \t \t \t \t SUBPARTITION(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パーティション(またはサブパーティション)の制限は、テーブル内の実際のパーティション数には適用されません。すべての可能なパーティションの全範囲が考慮されます。あなたはこの

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') 
); 

のようなテーブルを持っている場合、例えば

は、Oracleは1048575のサブパーティションの制限のための31個のパーティションを検討する - あなたのテーブルが2つだけのパーティションを持っているが。

+0

この問題は、私は修正パーティションを行うときに直面しています。サブパーティションを持つ新しいパーティションを5年間作成しても、正常に動作しています。問題がどこから来ているのか分かりません。 –

関連する問題