-- Create partitioned table.
DROP TABLE t2 PURGE;
DROP TABLE t1 PURGE;
CREATE TABLE t1
(id NUMBER,
description VARCHAR2(50),
created_date DATE)
PARTITION BY RANGE (created_date)
(PARTITION part_2014 VALUES LESS THAN (TO_DATE('01/01/2015', 'DD/MM/YYYY')));
-- ADD
ALTER TABLE t1
ADD
PARTITION part_2015 VALUES LESS THAN (TO_DATE('01/01/2016', 'DD/MM/YYYY')),
PARTITION part_2016 VALUES LESS THAN (TO_DATE('01/01/2017', 'DD/MM/YYYY')),
PARTITION part_2017 VALUES LESS THAN (TO_DATE('01/01/2018', 'DD/MM/YYYY')),
PARTITION part_2018 VALUES LESS THAN (TO_DATE('01/01/2019', 'DD/MM/YYYY'));
-- MERGE
ALTER TABLE t1
MERGE
PARTITIONS part_2015, part_2016, part_2017, part_2018
INTO PARTITION part_2018;
-- SPLIT
ALTER TABLE t1
SPLIT
PARTITION part_2018 INTO (
PARTITION part_2015 VALUES LESS THAN (TO_DATE('01/01/2016', 'DD/MM/YYYY')),
PARTITION part_2016 VALUES LESS THAN (TO_DATE('01/01/2017', 'DD/MM/YYYY')),
PARTITION part_2017 VALUES LESS THAN (TO_DATE('01/01/2018', 'DD/MM/YYYY')),
PARTITION part_2018
);
-- TRUNCATE
ALTER TABLE t1
TRUNCATE
PARTITION part_2014, part_2015, part_2016, part_2017, part_2018;
-- DROP
ALTER TABLE t1
DROP
PARTITION part_2016, part_2017, part_2018;