IT정보

SQL Loader 예제

YUNOLAND 2008. 7. 15. 09:41

연습용 테이블 생성
 
 SQL>CREATE TABLE DEPT_TEST(
           DEPTNO NUMBER NOT NULL,
           DNAME  VARCHAR2(14),
           LOC  VARCHAR2(13))    
   

테이블이 생성되었습니다.
 
SQL>CREATE TABLE EMP_TEST(  
          EMPNO NUMBER NOT NULL,
          ENAME VARCHAR2(10),
          JOB VARCHAR2(9),
          MGR NUMBER(4),
          HIREDATE DATE,
          SAL  NUMBER(7,2),
          COMM NUMBER(7,2),
          DEPTNO  NUMBER(2))

 
테이블이 생성되었습니다.

제어파일에 데이터가 들어가 있는 경우

 - DEPT_TEST 테이블에 insert하는 예제 입니다.
 - 각 데이터의 레코드의 필드를 ','로 구분을 했습니다  
 

============== dept_test.ctl 시작 ==============
LOAD DATA
INFILE *
INTO TABLE DEPT_TEST
FIELDS TERMINATED BY ','
(DEPTNO, DNAME, LOC)
BEGINDATA    -- 데이터 시작을 알림
12,RESEARCH,SARATOGA
10,ACCOUNTING,CLEVELAND
11,ART,SALEM
13,FINANCE,BOSTON
21,SALES,PHILA
22,SALES,ROCHESTER
42,"INT'L","SAN FRAN"
 
============== dept_test.ctl 끝 ==============

 
  - 위 부분을 dept_test.ctl파일로 저장을 합니다.
  - SQL*Loader을 실행 시킵니다.
   
C:\>sqlldr userid=scott/tiger control='C:\dept_test.ctl'
 


SQL*Loader: Release 8.1.6.0.0 - Production on 일 Dec 16 11:59:16 2001
 
(c) Copyright 1999 Oracle Corporation.  All rights reserved.
 
커밋 시점에 도달 - 논리 레코드 개수 6
커밋 시점에 도달 - 논리 레코드 개수 7
 
   - 데이터가 INSERT 되었는지 확인 합니다.
   - dept_test.log파일이 생겼는지 확인해 봅니다.    
   

C:\>SQLPLUS scott/tiger
 
SQL>SELECT * FROM dept_test;
 
 DEPTNO DNAME          LOC
------- -------------- -----------
     12 RESEARCH         SARATOGA
     10 ACCOUNTING      CLEVELAND
     11 ART                   SALEM
     13 FINANCE             BOSTON
     21 SALES               PHILA
     22 SALES               ROCHESTER
     42 "INT'L"               "SAN FRAN"  
- 제어파일과 데이터 파일이 분리된 경우

- Control File 부분은 dept.ctl로 저장 합니다.
- Data File 부분은 dept.dat로 저장을 합니다.
 
------------ dept.ctl 시작 ------------
LOAD DATA
INFILE 'dept.dat'     -- Data File을 지정 합니다.  
APPEND                  -- 기존에 데이터에 새로운 데이터를 추가 합니다.
INTO TABLE DEPT_TEST
FIELDS TERMINATED BY ','
(DEPTNO, DNAME, LOC)
 
------------ dept.ctl 끝 ------------

 



------------ dept.dat 시작 ------------
 
50,ACCOUNTING,NEW_YORK
60,RESEARCH,DALLAS
70,OPERATIONS,BOSTON
 
------------ dept.dat 시작 ------------

 

  - SQL*Loader을 실행 시킵니다.
 
C:\>sqlldr userid=scott/tiger control='C:\dept.ctl'
 


SQL*Loader: Release 8.1.6.0.0 - Production on 일 Dec 16 12:08:26 2001
 
(c) Copyright 1999 Oracle Corporation.  All rights reserved.
 
커밋 시점에 도달 - 논리 레코드 개수 2
커밋 시점에 도달 - 논리 레코드 개수 3
 
 
  - 데이터가 INSERT 되었는지 확인 합니다.
  - 기존에 데이터에 새로운 데이터가 추가 된 것을 확인 할 수 있습니다.
 
SQL> SELECT * FROM dept_test;
 
    DEPTNO DNAME          LOC
---------- -------------- ------------
        12 RESEARCH        SARATOGA
        10 ACCOUNTING     CLEVELAND
        11 ART                  SALEM
        13 FINANCE            BOSTON
        21 SALES              PHILA
        22 SALES              ROCHESTER
        42 "INT'L"              "SAN FRAN"
        50 ACCOUNTING     NEW_YORK
        60 RESEARCH        DALLAS
        70 OPERATIONS     BOSTON
 


10 개의 행이 선택되었습니다.

SQL*Loader의 다른 사용법은 아래 링크를 참조해 보세요.
http://www.oracle.co.kr/support/web_supports/rcnote/rcnote103/rn103_utl_02.html


출처 : Oracleclub.com