홈 · 개발 참고자료

개발 참고자료

[오라클] COPY명령을 이용한 오라클 테이블 복사 Oracle DB

작성자
관리자
작성일
2016-08-03
조회
8093
분류
오라클
오라클 8이상 부터는 SQL*Plus에서 COPY라는 명령어를 이용해서 테이블을 복사 할 수 있는 기능도 제공을 합니다.

그런데 COPY명령어는 SQL*Net이 설치되어 있어야지만 사용할 수 있습니다.
SQL*Net만 설치되어 있다면 다른 DB의 테이블도 복사를 해 올 수가 있습니다.
그리고 SQL*Plus에서만 사용할 수 있습니다.
문법을 살펴보면은요..

SQL> COPY FROM 복사할유저명/암호@SID CREATE 생성할테이블명 USING 원본테이블질의

예제:
SQL> COPY FROM scott/tiger@oracle CREATE emp2 USING select * from emp;
위의 방법은 데이터를 복사하면서 테이블을 생성하는 방법이고 기존에 생성되어 있는 테이블에 데이터만 복사할 수 도 있습니다.
SQL> COPY FROM scott/tiger@oracle CREATE emp2 USING select * FROM emp;
이 문법에서 CREATE를 INSERT로 바꿔 주시면 됩니다.

SQL> COPY FROM scott/tiger@oracle INSERT tmp2 USING select * from emp;






ps. long형 복사할려고 한거였는데 컬럼의 데이터가 짤리더군요
이거저거 찾아보다가 SQL*Plus의 환경을 좀 바꿔주니까 되네요
set long 100000 --(복사할 long형의 최대 데이터보다 크게)
set longc 100000 --(복사할 long형의 최대 데이터보다 크게)