기존에 생성된 테이블의 테이블스페이스를 다른 걸로 변경하는 방법이다.

이게 가능한 작업인지 몰라서 처음에는 exp, imp를 통해 테이블 스페이스를 변경했다.

ALTER TABLE 대상_테이블명 MOVE TABLESPACE 옮길_TS명;

ALTER INDEX 대상_인덱스명 REBUILD TABLESPACE  옮길_TS명;

 참고로 아래는 접속 계정에 해당하는 모든 테이블과 인덱스의 테이블 스페이스를 변경하는 구문을 추출하는 쿼리이다.

/* 테이블 */
SELECT 'ALTER TABLE ' || TNAME ||' MOVE TABLESPACE TARGET_TS;' FROM TAB WHERE TABTYPE = 'TABLE';

/* 인덱스 */
SELECT 'ALTER INDEX ' || INDEX_NAME ||' REBUILD TABLESPACE TARGET_TS;' FROM USER_INDEXES;


+ Recent posts