* - レンジ・パーティション表のパーティションの分割は、「レンジ・パーティション表のパーティションの分割」での説明と似ています。新しいパーティションのいずれにも、サブパーティションのレンジ値を指定できません。新しいパーティションは、分割元のパーティションからサブパーティションの説明を継承します。
次の例では、時間隔 - レンジ・パーティション表ordersの2007年5月の時間隔パーティションを分割します。
ALTER TABLE orders
SPLIT PARTITION FOR(TO_DATE('01-MAY-2007','dd-MON-yyyy'))
AT (TO_DATE('15-MAY-2007','dd-MON-yyyy'))
INTO (PARTITION p_fh_may07,PARTITION p_sh_may2007);
この操作により、時間隔パーティションFOR('01-MAY-2007')が、p_fh_may07およびp_sh_may_2007の2つの結果のパーティションに分割されます。どちらのパーティションも、元のパーティションからサブパーティションの説明を継承します。「時間隔パーティションのマージ」で説明されているように、2007年6月のパーティションより前の時間隔パーティションはレンジ・パーティションに変換されます。
ALTER TABLE SPLIT PARTITION文には、コンポジット・パーティション表のパーティションを分割した結果のサブパーティションに、明示的に名前を付ける方法がありません。ただし、partition name_subpartition nameという書式の名前が付けられた親パーティションのサブパーティションには、データベースにより、新規に作成されたサブパーティションに新しいパーティション名を使用して対応する名前が生成されます。その他すべてのサブパーティションには、SYS_SUBPnという書式のシステム生成の名前が割り当てられます。システム生成の名前は、名前が指定されていないパーティションを分割した結果のサブパーティションにも割り当てられます。名前が付けられていないパーティションには、SYS_Pnという書式のシステム生成のパーティション名が割り当てられます。
次の問合せでは、表ordersに対する前のパーティション分割操作で生成されたサブパーティション名と上限値が表示されます。表が作成されてから、この章でこれまでに実行された他の操作の結果も反映しています。
BREAK ON partition_name
SELECT partition_name, subpartition_name, high_value
FROM user_tab_subpartitions
WHERE table_name = 'ORCERS'
ORDER BY partition_name, subpartition_position;
PARTITION_NAME SUBPARTITION_NAME HIGH_VALUE
------------------------- ------------------------------ ---------------
P_BEFORE_2007 P_BEFORE_2007_P_SMALL 1000
P_BEFORE_2007_P_MEDIUM 10000
P_BEFORE_2007_P_LARGE 100000
P_BEFORE_2007_P_EXTRAORDINARY MAXVALUE
P_FH_MAY07 SYS_SUBP2985 1000
SYS_SUBP2986 10000
SYS_SUBP2987 100000
SYS_SUBP2988 MAXVALUE
P_PRE_MAY_2007 P_PRE_MAY_2007_P_SMALL 1000
P_PRE_MAY_2007_P_MEDIUM 10000
P_PRE_MAY_2007_P_LARGE 100000
P_PRE_MAY_2007_P_EXTRAORDINARY MAXVALUE
P_SH_MAY2007 SYS_SUBP2989 1000
SYS_SUBP2990 10000
SYS_SUBP2991 100000
SYS_SUBP2992 MAXVALUE