오라클에서 테이블 복사하는 쿼리문

출처 : http://keizwer.tistory.com/147

1. 생성과 동시에 데이터 카피하기(복사)
CREATE TABLE COPY_TB AS SELECT * FROM ORI_TB

2. 기존 테이블에 데이터만 가져오기
INSERT INTO COPY_TB SELECT * FROM ORI_TB


약간 응용해서 들어가면~

테이블을 생성했는데 다른 테이블스페이스로 옮기고 싶을때.

테이블을 다른 테이블스페이스로 지정하고 미리 생성해 둡니다.
CREATE TABLE COPY_TB
(A NUMBER,
 B VARCHAR2(10))
TABLESPACE COPY_TBS

그리고 기존 테이블의 내용을 새로 생성한 테이블에 쑤셔 넣습니다.
INSERT INTO COPY_TB SELECT * FROM ORI

이게 이상해 보이지만... exp/imp로 하는 방법도 있습니다.
요기에 대해서는.. 패스 ㅡㅡ;

9i 이상에서는 단 한줄로 테이블이 속한 테이블스페이스를 옮길 수 있습니다.
요렇게

ALTER TABLE copy_tb MOVE TABLESPACE users;

인덱스도 옮길 수 있다. 테스트용 scott꺼를 옮겨 보기로 하자.

alter index PK_EMP rebuild tablespace users;

+ Recent posts