오라클 8이상 부터는 SQL*Plus에서 COPY라는 명령어를 이용해서 테이블을 복사 할 수 있는 기능을 제공 한다.
COPY명령어는 SQL*Net이 설치되어 있어야하고, SQL*Plus에서 만 사용 할 수 있다.
-- 문법을 살펴보면은요.. SQL> COPY FROM 복사해올유저명 CREATE 생성할 테이블명 USING 원본 테이블 질의 -- 간단하게 예제를 하나 들면.. SQL> COPY FROM scott/tiger@oracle CREATE emp2 USING SELECT * FROM emp; 배열의 인출/바인드 크기는 15입니다. (배열 크기는 15) 작업이 완성되면 커밋됩니다. (복사 완료: 0) 최대 긴 크기는 80 입니다. (롱 80) 테이블 EMP가 생성되었습니다. 14 행이 선택되었습니다(scott@oracle 로부터). 14 행이 입력되었습니다(EMP 에). 14 행이 EMP( DEFAULT HOST 연결의)으로 커밋되었습니다.
간단히 설명을 하면은요..
scott/tiger@oracle : tnsnames.ora파일에 oracle이라는 서비스명으로 설정한 DB의 scott/tiger유저로 접속을 해서 emp 테이블을 emp2라는 이름으로 복사를 합니다.
USING 문 뒤에는 복사할 테이블의 데이터를 가져오는 SQL문을 넣습니다.
아래는 tnsnames.ora파일의 일부분 입니다.
============== tnsnames.ora ================ ORACLE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = oracle) ) ) ============================================
위의 방법은 기존에..테이블을 복사하는 방법중에 CREATE TABLE table_name AS SELECT ~~ 문으로 복사하는 방법과 비슷합니다.
-- 예를 들어보면.. SQL> CREATE TABLE emp2 AS SELECT * FROM scott.emp;
이렇게 해서 emp테이블을 emp2테이블로 복사 할 수 있었습니다.
- 강좌 URL : http://www.gurubee.net/lecture/1404
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.