본문 바로가기

소프트웨어/오라클

[Oracle SQL*Loader] 우편번호 DB에 입력하기

[출처] : http://blog.naver.com/hirokorea/20020980191

## SQL*Loader 사용법 ##

1. syntax(문법)
   SQLLDR [keyword=]value [[keyword=]value]

2. example(예제)
   C:>SQLLDR hr/hr control='C:\zipcdoe.ctl' direct=true

3. keword(키워드)
   - USERID           : 오라클 사용자 이름과 암호를 지정 합니다.
   - CONTROL       : 컨트롤 파일 이름
                             SQL*Loader를 수행하기 위해서는 항상 지정해 주어야 합니다.
   - LOG               : 로그 파일 이름을 지정합니다.(기본 이름은 controlfile.log)
   - BAD               : 거부된 레코드 모두를 저장하는 bad파일 이름을 지정합니다.
   - DATA             : 입력 데이터 파일 이름을 지정 합니다.
   - DISCARD        : LOARD시 선택되지 않은 레코드가 저장되는 디스카드 파일(선택사항)
   - DISCARDMAX : 버림(discard)의 최대 수를 지정합니다.
   - ERROR          : 허용하는 배드 레코드의 최대 수를 지정합니다.
   - DIRECT         : 1.TRUE O : SQL*Loader는 direct path를 사용,
                           2.TRUE X : CONVENTIONAL PATH를 사용합니다.
   - PARFILE        : 추가 파라미터 파일을 지정합니다.
   - PARALLEL     : DIRECT로드에서만 적합한 이 파라미터는
                            다중 병렬 DIRECT로드가 수행 되도록 지정 합니다.
   - FILE              : 병렬 DIRECT로드의 경우 임시 세그먼트가 생성될 파일을 지정합니다.



## Sample예제 : 우편번호 zipcode.csv파일 oracle에 insert하기 #

/-------------참고파일-------------------------------------/

여기에 아래에 사용하는 소스들이 모두 들어있습니다.
다운 받으셔서 그대로 진행해 보세요~~ ^^
/---------------------------------------------------------/

1.ZIPCODE table 생성
  create table zipcode  (
     seq                  NUMBER(5)                        not null,
     zipcode            VARCHAR2(7),
     sido                 VARCHAR2(4),
     gugun              VARCHAR2(15),
     dong               VARCHAR2(43),
     bunji              VARCHAR2(17),
     constraint PK_ZIPCODE primary key (seq)
  )

2.zipcode_20080828.csv 파일 생성(','로 되어있는 데이터 파일)
  - 우편번호의 경우 http://www.zipfinder.co.kr/zipcode/index.html 에서 다운받으시면 됩니다.
     총 5가지의 종류가 있는데 그 중에 원하시는 데이터 형태로 받으시면 됩니다.
  -  .dbf 파일을 excell로 열어서 .csv로 저장합니다.  
  - 저는 여기서 c:\zipcode_20080828.csv에 위치하도록 하였습니다.

3.SQL*Loader controlfile생성

  /********************
   *  c:\ zipcode.ctl *
   ********************/
 
  - LOAD    DATA
    INFILE 'C:\zipcode_20080828.csv'
    INTO    TABLE zipcode
    FIELDS  TERMINATED BY "," (SEQ,ZIPCODE,SIDO,GUGUN,DONG,BUNJI)

4.SQL*Loader실행
  - c:\>sqlldr hr/hr control=zipcode.ctl  

 [ 실행결과 그림1-1]


실행결과가 [그림 1-1]과같이 나왔다면 정상적으로 import가 된 것 입니다.
결과가 제대로 나오지 않거나 궁금하신 점은  comment를 달아주세요~~ ^^