[レンジ | リスト | 時間隔] - ハッシュ・パーティション表への新しいパーティションの追加は、すでに説明されている内容と同様です。時間隔 - ハッシュ・パーティション表の場合、時間隔パーティションは自動的に作成されます。指定した数のサブパーティションを追加できるSUBPARTITIONS
句を指定することも、特定のサブパーティションに名前を付けるSUBPARTITION
句を指定することも可能です。SUBPARTITIONS
またはSUBPARTITION
句が指定されていない場合、パーティションはサブパーティションの表レベルのデフォルトを継承します。時間隔 - ハッシュ・パーティション表の場合、マテリアライズ化されたレンジまたは時間隔パーティションに追加できるのはサブパーティションのみです。
この例では、2000年の第1四半期のデータが移入されるレンジ・パーティション q1_2000
を、レンジ - ハッシュ・パーティション表sales
に追加しています。表領域tbs5
に格納される8つのサブパーティションがあります。サブパーティションを、表圧縮を使用するように明示的に設定することはできません。サブパーティションはパーティション・レベルから圧縮属性を継承し、この例では圧縮された形式で格納されます。
ALTER TABLE sales ADD PARTITION q1_2000 VALUES LESS THAN (2000, 04, 01) COMPRESS SUBPARTITIONS 8 STORE IN tbs5;
ハッシュ・サブパーティションを[レンジ | リスト | 時間隔] - ハッシュ・パーティション表に追加するには、ALTER
TABLE
文のMODIFY PARTITION
ADD
SUBPARTITION
句を使用します。新しく追加されたサブパーティションには、同じパーティションのその他のサブパーティションから再度ハッシュされた行が、ハッシュ関数で決定されたとおりに移入されます。時間隔 - ハッシュ・パーティション表の場合、マテリアライズ化されたレンジまたは時間隔パーティションに追加できるのはサブパーティションのみです。
次の例では、表diving
のレンジ・パーティションlocations_us
に、表領域us1
に格納される新しいハッシュ・サブパーティションus_loc5
が追加されています。
ALTER TABLE diving MODIFY PARTITION locations_us ADD SUBPARTITION us_locs5 TABLESPACE us1;
UPDATE
INDEXES
を指定しない場合は、追加および再度ハッシュされたサブパーティションに対応する索引サブパーティションを再作成する必要があります。