ORA-14511: cannot perform operation on a partitioned object
파티션 테이블의 기본 테이블 스페이스를 변경하지 않음
- 해당 테이블의 기본 테이블 스페이스를 변경
ALTER TABLE owner_name.table_name MODIFY DEFAULT ATTRIBUTES TABLESPACE tablespace_name;
- 기존 파티션들은 그대로 남아있는 상태이므로 기존 파티션들도 새 테이블 스페이스로 옮겨야 함
--1. 해당 파티션 테이블 통계 수집 EXEC DBMS_STATS.gather_table_stats('owner_name', 'table_name', granularity=>'ALL'); --2. 파티션 이동 쿼리 작성 SELECT 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME||' MOVE PARTITION '||PARTITION_NAME||' TABLESPACE tablespace_name;' AS SQL FROM DBA_TAB_PARTITIONS WHERE TABLE_OWNER = 'owner_name' AND TABLE_NAME = 'table_name'; /* ALTER TABLE owner_name.table_name MOVE PARTITION partition_name TABLESPACE tablespace_name; */ --3. 파티션 인덱스 리빌드 SELECT 'ALTER INDEX '||I.INDEX_OWNER||'.'||I.INDEX_NAME||' REBUILD PARTITION '||I.PARTITION_NAME||' TABLESPACE tablespace_name;' AS SQL FROM DBA_IND_PARTITIONS I, DBA_TAB_PARTITIONS T WHERE I.PARTITION_NAME = T.PARTITION_NAME AND T.TABLE_OWNER = 'owner_name' AND T.TABLE_NAME = 'table_name'; /* ALTER INDEX owner_name.index_name REBUILD PARTITION partition_name; */