본문 바로가기

Oracle/sql * loader

SQL * Loader로 데이터 넣는 법


sql * loader를 사용하여 손쉽게 많은 양의 데이터를 한번에 처리할 수 있다.

<환경 오라클 10gR2>

create sql

create table t_disk_info(
 SYS_LGRP_CD varchar2(5),
 system_date varchar2(8),
 system_time varchar2(6),
 file_system varchar2(20),
 current_used varchar2(12),
 total_size number(12),
 used_size number(12),
 avail_size varchar2(12),
 mounted_on varchar2(20)
);

0303disk.dat

iux51|20090115|230000|/dev/cciss/c0d1p2|100798800|30809092|69989708|30.56|/NMSBAK|
iux51|20090115|230000|/dev/cciss/c0d2p1|288362864|49865847|238497017|17.29|/SVC


1. 테이블을 만들고, 데이터를 알맞게 배치시키기.

disk_info.ctl

LOAD DATA
INFILE 'c:\file\0303disk.dat'
replace INTO TABLE t_disk_info
FIELDS TERMINATED BY '|'
(
SYS_LGRP_CD,
SYSTEM_DATE,
SYSTEM_TIME,
FILE_SYSTEM,
CURRENT_USED,
TOTAL_SIZE,
USED_SIZE,
AVAIL_SIZE,
MOUNTED_ON
)


2. control파일을 생성한다.

control file을 위한 참고 문서: 

      http://grapro.tistory.com/47?srchid=BR1http%3A%2F%2Fgrapro.tistory.com%2F4
      http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14215/app_ldr_syntax.htm#i631434       
      http://database.sarang.net/?inc=read&aid=8767&criteria=oracle&subcrit=&id=8913&limit=20&keyword=&page=12


3. 실행창에서 sqlldr를 실행한다.

OS> sqlldr userid=scott/tiger@ip:port/uid control=c:\disk_info.ctl

control file이 있는 폴더에서 해당 작업이 잘 진행되었는지를
볼 수 있는 log파일이 생성되고 실패한 파일이 있는 경우 해당 컬럼은
*.bad파일에 들어가서 내가 확인할 수 있다.