, ACT TMP ( CTAS )
, - , , , , ( ), , (, HIST).
INTERVAL PARTITONING ( ).
create table tmp as
select * from t_act partition FOR (TO_DATE('2016-02-21', 'YYYY-MM-DD'));
LOCK TABLE t_hist
PARTITION FOR (TO_DATE('2016-02-21', 'YYYY-MM-DD'))
IN SHARE MODE;
ALTER TABLE t_hist
EXCHANGE PARTITION FOR (TO_DATE('2016-02-21', 'YYYY-MM-DD'))
WITH TABLE tmp
INCLUDING INDEXES;
alter table t_act drop partition FOR (TO_DATE('2016-02-21', 'YYYY-MM-DD')) UPDATE INDEXES;
drop TABLE t_act;
CREATE TABLE t_act
(id number,
transaction_date DATE not null,
vc_pad VARCHAR2(100)
)
PARTITION BY RANGE (transaction_date)
INTERVAL (NUMTODSINTERVAL(1,'DAY'))
(
PARTITION P_01 VALUES LESS THAN (TO_DATE('2016-02-22', 'YYYY-MM-DD') ),
PARTITION P_02 VALUES LESS THAN (TO_DATE('2016-02-23', 'YYYY-MM-DD') )
);
ALTER TABLE t_act ADD CONSTRAINT t_act_pk PRIMARY KEY (id);
create index t_act_ix1 on t_act(transaction_date);
drop TABLE t_hist;
CREATE TABLE t_hist
(id number,
transaction_date DATE not null,
vc_pad VARCHAR2(100)
)
PARTITION BY RANGE (transaction_date)
INTERVAL (NUMTODSINTERVAL(1,'DAY'))
(
PARTITION P_01 VALUES LESS THAN (TO_DATE('2016-02-20', 'YYYY-MM-DD') ),
PARTITION P_02 VALUES LESS THAN (TO_DATE('2016-02-21', 'YYYY-MM-DD') )
);
insert into t_act
select rownum, TO_DATE('2016-02-21', 'YYYY-MM-DD') ,'TEST' from dual connect by level <= 100000;
commit;