Oracle 21c의 VLDB and Partitioning Guide에 아래의 설명이 추가되었습니다.
As of Oracle Database 21c, you can move partitioned and subpartitioned tables with a single DDL command.
테스트를 위해 아래와 같이 테이블을 생성하겠습니다.
-- 1
DROP TABLE t1 PURGE;
CREATE TABLE t1 (c1 NUMBER, c2 NUMBER)
PARTITION BY RANGE (c1)
SUBPARTITION BY HASH (c2)
SUBPARTITION TEMPLATE (
SUBPARTITION sp1
, SUBPARTITION sp2
) (
PARTITION p1 VALUES LESS THAN (2)
, PARTITION p2 VALUES LESS THAN (3)
);
오라클 19.3 버전에서는 2-1, 2-2번 구문에서 에러가 발생합니다.
-- 2-1: 19.3
ALTER TABLE t1 MOVE;
ORA-14511: 분할된 객체에 작업을 수행할 수 없습니다
-- 2-2
ALTER TABLE t1 MOVE PARTITION p1;
ORA-14257: 조합 분할 영역인 분할 영역은 이동할 수 없습니다.
-- 2-3
ALTER TABLE t1 MOVE SUBPARTITION p1_sp1;
테이블이 변경되었습니다.
오라클 21.3 버전에서는 3-2번 구문만 에러가 발생합니다. 대용량 환경에서는 주로 복합 파티션에 대한 파티션 단위의 작업을 수행하므로 향후 3-2번 구문에 대한 개선이 필요할 것으로 보입니다. 참고로 3-2번 구문은 오라클 23.2 버전에서도 에러가 발생합니다.
-- 3-1: 21.3
ALTER TABLE t1 MOVE;
테이블이 변경되었습니다.
-- 3-2
ALTER TABLE t1 MOVE PARTITION p1;
ORA-14257: 조합 분할 영역인 분할 영역은 이동할 수 없습니다.
-- 3-3
ALTER TABLE t1 MOVE SUBPARTITION p1_sp1;
테이블이 변경되었습니다.
관련 링크