ALTER
TABLE
SPLIT
PARTITION
文を使用して、リスト・パーティションを分割します。SPLIT
PARTITION
句を使用すると、リテラル値のリストを指定してパーティションを定義できます。このパーティションに、対応するパーティション化キー値を含む行が挿入されます。元のパーティションのその他の行は、元のパーティションの残りの値が値リストに含まれる2番目のパーティションに挿入されます。分割の結果である2つのパーティションに、オプションで新しい属性を指定できます。
次の文では、パーティションregion_east
が2つのパーティションに分割されます。
ALTER TABLE sales_by_region SPLIT PARTITION region_east VALUES ('CT', 'MA', 'MD') INTO ( PARTITION region_east_1 TABLESPACE tbs2, PARTITION region_east_2 STORAGE (INITIAL 8M)) PARALLEL 5;
元のregion_east
パーティションのリテラル値のリストは、次のように指定されています。
PARTITION region_east VALUES ('MA','NY','CT','NH','ME','MD','VA','PA','NJ')
2つの新しいパーティションは次のとおりです。
リテラル値のリストが('CT','MA','MD')
のregion_east_1
残りのリテラル値のリスト('NY','NH','ME','VA','PA','NJ')
を継承しているregion_east_2
個々のパーティションには、パーティション・レベルで指定された新しい物理属性があります。操作は並列度5で実行されます。
その他のリスト・パーティションの分割と同じように、デフォルトのリスト・パーティションを分割できます。これは、デフォルトのパーティションがあるリスト・パーティション表にパーティションを追加する唯一の方法でもあります。デフォルトのパーティションを分割する際には、指定した値で定義された新しいパーティションと、デフォルトのパーティションとして残る2つ目のパーティションを作成します。
次の例では、sales_by_region
のデフォルトのパーティションを分割し、それによって新しいパーティションを作成します。
ALTER TABLE sales_by_region SPLIT PARTITION region_unknown VALUES ('MT', 'WY', 'ID') INTO ( PARTITION region_wildwest, PARTITION region_unknown);