본문 바로가기

플밍 is 뭔들/DB

[오라클] SQL Loader 사용법 (.dat파일을 DB에 임포트 해보자)

이번에 엄청난 데이터를 받았다... 몇백만 건이 넘는 .dat파일 세개...
이럴때 바로 SQL Loader를 쓰면 엄청난 양의 데이터, 그리고 .dat확장자를 가진 데이터를 빠르고 쉽게 테이블에 삽입할 수 있다.


※ SQL Loader 사용법
  1. 데이터를 임포트할 테이블을 생성한다.
  2. 컨트롤 파일을 만든다.
  3. cmd창에서 SQL Loader를 실행한다.

※ 상세방법
  1. 데이터를 임포트할 테이블을 생성한다.
          - 생략

  1. 컨트롤 파일을 만든다.
           - SQL Loader를 사용하기 위해서는 컨트롤 파일이란것이 필요하다. 컨트롤 파일은 데이터 임포트를 하기위한 
             일종의 설정파일이다.
             메모장에 작성한 후 확장자를 .ctl로 저장하자. ctl 파일 내용은 아래와 같다.

options(skip =1)  
load data
infile 'C:\Users\Administrator\Desktop\2017DJA\DJA.dat'  
append   
into table DJA_01  
fields terminated by '|'
trailing nullcols
(
  Column1
, Column2
, Column3 
)
options(skip =1) :  맨위의 한줄을 건너뛰고 다음 줄부터 데이터 임포트 시키는 옵션
infile  : 임포트 하려는 데이터 파일의 경로와 이름
append :  기존 테이블의 데이터뒤에 위의 데이터를 추가하는 옵션
into table DJA : 데이터를 추가하려는 테이블의 이름
fields terminated by '|' : 구분자
trailing nullcols : null인 데이터도 삽입할 때 사용하는 옵션
괄호 안 ( ) : 데이터를 추가하려는 테이블의 컬럼명을 적는다.


  1. cmd창에서 SQL Loader를 실행한다.
          - cmd 창에서 SQL Loader를 실행시키는 명령어를 입력한다.
               1) cmd 실행
               2) sqlplus userid/userpw 을 입력하여 sqlplus 실행
               3) 아래 명령어를 입력하여 SQL Loader 실행.... 단 저 명령어는 OS명령창에서 나와서 써야하기 때문에 앞에 
                   $가 붙는다
                   (리눅스라면 ! 가 붙음)

$sqlldr userid= dj/1234 control ='C:\Users\Administrator\Desktop\DJA\SQL_Loader\DJA01.ctl' log ='C:\Users\Administrator\Desktop\DJA\SQL_Loader\DJA01.log'
          
          userid : 해당 데이터베이스의 아이디와 비밀번호
          control : 컨트롤 파일의 위치
          log : SQL Loader 실행시 생성될 로그파일의 위치 (참고로 데이터 삽입에 실패하면 bad파일이 생성되는데 
                그 곳에는 삽입이 실패한 데이터들의 목록이 들어있음)