데이타베이스/오라클
기존에 생성된 테이블의 테이블스페이스를 다른 걸로 변경
finkle
2012. 3. 30. 21:10
기존에 생성된 테이블의 테이블스페이스를 다른 걸로 변경하는 방법이다.
이게 가능한 작업인지 몰라서 처음에는 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;