2013년 10월 27일 일요일

Importing .CSV file to database table ( oracle, oracle sql loader )

  • 테스트 환경
    • Oracle 11g, Ubuntu, sqlplus
  •  오라클에 터미널로 접속시 CSV 파일을 통해 손쉽게 DB 테이블을 생성할 수 있다.
  • ctl 파일을 통해 파일 형식을 지정하고 csv 파일을 로딩한다.


  1. 테이블 생성
  2. CREATE TABLE T_CONTACTS
    (
        CONTACT_ID          NUMBER,
        CONTACT_FIRST_NAME  VARCHAR2(30),
        CONTACT_LAST_NAME   VARCHAR2(30),
        CONTACT_PHONE       VARCHAR2(30),
        CONTACT_EMAIL       VARCHAR2(100),
        CONTACT_UPDATE      DATE
    );
    
  3. ctl 파일 생성(contacts.ctl)
  4. OPTIONS (SKIP=1)
    LOAD DATA
    BADFILE 'import_error.bad'
    APPEND
    INTO TABLE T_CONTACTS
    FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
    (
        CONTACT_ID          INTEGER EXTERNAL               NULLIF CONTACT_ID        = BLANKS,
        CONTACT_FIRST_NAME  CHAR(30)                       NULLIF CONTACT_FIRST_NAME= BLANKS,
        CONTACT_LAST_NAME   CHAR(30)                       NULLIF CONTACT_LAST_NAME = BLANKS,
        CONTACT_PHONE       CHAR(30)                       NULLIF CONTACT_PHONE     = BLANKS,
        CONTACT_EMAIL       CHAR(100)                      NULLIF CONTACT_EMAIL     = BLANKS,
        CONTACT_UPDATE      DATE "DD/MM/YYYY HH24:MI:SS"   NULLIF CONTACT_UPDATE    = BLANKS
    )
    
  5. csv 파일 준비(contacts.csv)
  6. ID,LAST_NAME,FIRST_NAME,PHONE,EMAIL,UPDATE
    000,Yohan,Lee,0101231234,youhan@mail.com,28/10/2013 13:43"
    001,Taehee,Kim,0101231234,tahee@mail.com,22/10/2013 13:30"
    002,Sarang,Kim,0101231234,sarang@mail.com,23/10/2013 13:56"
    003,Chayah,Han,0101231234,chay-ah@mail.com,24/10/2013 13:13"
    004,EunHye,Yoon,0101231234,yoon@mail.com,25/10/2013 13:40"
    
  7. sqlldr을 통해 테이블에 csv테이터 삽입(terminal).
  8. sqlldr userid=user/password@DB_INSTANCE_NAME control=contacts.ctl log=contacts.log data=contacts.csv
    

댓글 없음:

댓글 쓰기