본문 바로가기

데이터베이스(DA, AA, TA)/Oracle

[오라클] SQL*Loader란?

SQL*Loader란?

 

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

 

 

SQL*Loader 특징

 

  1) 하나 이상의 입력 파일을 사용할 수 있습니다.

  2) 로드를 위해 여러 개의 입력 레코드가 하나의 논리적 레코드로 결합될 수 있습니다.

  3) 입력 필드는 고정된 길이를 가질 수도, 다양한 길이를 가질 수도 있습니다.

  4) 입력 데이터는 문자, 이진, 팩 십진수(packed decimal), 날짜, 그리고 존 십진수(zoned decimal) 등의 어떤 유형도 사용할 수 있습니다.

  5) 데이터는 디스크나 테이프, 또는 명명된 파이프 등 여러 유형의 매체로부터 로드될 수 있습니다.

  6) 데이터는 한 번에 여러 테이블로 로드될 수 있습니다.

  7) 데이터는 데이터베이스 버퍼 캐쉬를 거치지 않고 테이블로 직접 로드될 수 있습니다.

 

 

SQL*Loader의 사용

 

문법: sqldr 명령어는 $ORACLE_HOME/bin 디렉토리에 있습니다.

sqldr [keyword=] value [ [keyword=] value ] ...

- keyword: 아래에 설명되는 키워드 중의 하나

- value: 키워드에 지정되는 값

 

예제:

sqldr userid=scott/tiger control='ulcase1.ctl' log='ulcase1.log'

키워드:

 

 키워드

 설명

 UESRID

 오라클 사용자 이름과 암호를 지정합니다.

 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로드의 경우 임시 세그먼트가 생성될 파일을 지정합니다.

 

 

출처: http://www.gurubee.net/lecture/1118