インターバルパーティションなテーブルを作成してみたので、その時のメモ。
-- インターバルパーティションなテーブルを作成
create table INTERVAL_TEST(
DTM timestamp primary key,
MSG varchar2(50)
)
partition by range(DTM)
interval(
NumToDSInterval(1,'MINUTE')
)
(partition values
less than(
to_date('2011/01/01','YYYY/MM/DD') -- このパーティションは削除(Drop)できない
)
);
-- パーティションあたり格納行数の収集
begin
dbms_stats.gather_table_stats(
ownname => 'SCOTT',
tabname => 'INTERVAL_TEST',
method_opt => 'FOR ALL COLUMNS SIZE 1',
cascade => true);
end;
/
-- パーティションの確認/および格納行数の確認
select TABLE_NAME,PARTITION_NAME,TABLESPACE_NAME,HIGH_VALUE,NUM_ROWS
from USER_TAB_PARTITIONS;
-- パーティション名の変更
alter table INTERVAL_TEST rename partition SYS_P41 TO DATE_2011_01_01_00_00;
-- パーティションの移動
alter table INTERVAL_TEST move partition DATE_2011_01_01_00_00 tablespace TEST;
-- パーティションの削除
alter table INTERVAL_TEST drop partition SYS_P42;