본문 바로가기

DataBase/Oracle

SQL*Loader란?

1. SQL*Loader란 ?

  SQL*Loader란 외부 화일 데이터를 ORACLE 데이타베이스의 테이블에 넣기 위한 유틸리티 입니다.

2. SQL*Loader 특징
  ① 하나 이상의 입력 파일을 사용 할 수 있습니다.
  ② 로드를 위해 여러 개의 입력 레코드가 하나의 논리적 레코드로 결합될 수 있습니다.
  ③ 입력 필드는 고정된 길이를 가질 수도, 다양한 길이를 가질 수도 있습니다.
  ④ 입력 데이터는 문자, 이진, 팩 십진수(packed decimal), 날짜, 그리고 존 십진수(zoned decimal)등의
      어떤 유형도 사용 할 수 있습니다.
  ⑤ 데이터는 디스크나 테이프, 또는 명명된 파이프 등 여러 유형의 매체로부터 로드될 수 있습니다.
  ⑥ 데이터는 한 번에 여러 테이블로 로드될 수 있습니다.  
  ⑦ 데이터는 데이터베이스 버퍼 캐쉬를 거치지 않고 테이블로 직접 로드될 수 있습니다.

3. SQL*Loader의 사용
  ① 문법
      SQLLDR [keyword=] value  [ [keyword=] value ]...
     - KEYWORD : 아래에 설명되는 키워드중의 하나
     - VALUE : 키워드에 지정되는 값
  ② 예제)
     SQLLDR userid=scott/tiger control='ulcase1.ctl' log='ulcase1.log' direct=true
  ③ 키워드
  키워드
 설    명
  USERID
   오라클 사용자 이름과 암호를 지정 합니다.

  CONTROL
   콘트롤 파일 이름, SQL*Loader을 수행하기 위해서는 항상 지정해 주어야 합니다.
 
  LOG
   로그 파일 이름을 지정 합니다. (기본 이름은 controlfile.log)
 
  BAD
   거부된 레코드 모두를 저장하는 배드 파일 이름을 지정 합니다.
  (기본 이름은 controlfile.bad)
 
  DATA
   입력 데이터 파일 이름을 지정 합니다.
 
  DISCARD
   Load시 선택되지 않은 레코드가 저장되는 디스카드 파일(선택 사항)
 
  DISCARDMAX
   버림(discard)의 최대 허용 갯수를 지정 합니다.
 
  ERRORS
   허용하는 배드 레코드의 최대 수를 지정 합니다.
 
  DIRECT
   TRUE로 설정되면 SQL*Loader는 DIRECT PATH를 사용.
  반대의 경우는 기본 값인 CONVENTIONAL PATH를 사용 합니다.
 
  PARFILE
   추가 파라미터 파일을 지정 합니다.
 
  PARALLEL
   DIRECT 로드에서만 적합한 이 파라미터는 다중 병렬 DIRECT로드가
  수행되도록 지정 합니다.
 
  FILE
   병렬 DIRECT로드의 경우 임시 세그먼트가 생성될 파일을 지정 합니다.