본문 바로가기

DataBase/Oracle

SQL*Loader 예제

연습용 테이블 생성

 
 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),
          D0EPTNO  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