Oracle Admin 강좌 (Oracle9i)
SQL*Loader 예제 12 5 30,146

by 김정식 SQL*LOADER SQLLDR SQL Loader [2002.01.24]


연습용 테이블 생성

 
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 개의 행이 선택되었습니다.  
    

- 강좌 URL : http://www.gurubee.net/lecture/1120

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 김정식 [2004.04.01 17:03:59]
★ CLOB컬럼에 많은양이 데이터를 로드할 경우.
(DESCRIPTION컬럼이 CLOB일 경우)

LOAD DATA
INFILE 'C:\data.txt'
APPEND
INTO TABLE wp_test
FIELDS TERMINATED BY '|'
(test_id,test_name,description CHAR(8192000) nullif description=BLANKS)

by 김철수 [2007.11.30 11:59:04]
엑셀파일로 불러온 자료라 자료와 자료사이가 공백으로 되어있습니다.
이럴때 FIELDS TERMINATED BY ''의 ''안에 무어라 써야지 입력되는지 알고 싶습니다.

by 열공 [2013.05.15 14:28:27]
by whitespace

by 김정식 [2010.04.22 14:21:59]

by 손님 [2013.05.14 18:24:17]

로그 파일은 어디서 확인할 수 있나요??

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입