by 구루비 SQL*LOADER CONTROL FILE DATA FILE LOG FILE BAD FILE DISCARD FILE SQL Loader [2002.01.24]
Control File은 Load할 데이터에 대한 설명을 기술한 파일 입니다.
데이터를 로드 할 오라클 테이블과 컬럼을 명시 합니다.
테이블 내에 데이터와 컬럼 사이의 종속 관계를 지정 합니다.
Control File은 대소문자 구분없이 작성 할 수 있습니다.
대소문자 구분은 " "등으로 지정된 스트링 데이터를 제외하고는 중요하지 않습니다.
주석은 -- 로 표시 합니다.
SQL*Loader의 예약어를 테이블 또는 컬럼명으로 사용 할 때에는 " "를 사용해야 합니다.
- LOAD DATA : 제어화일의 시작을 명시 합니다.
- INFILE : 외부화일을 지정 합니다. (ex. INFILE 'ulcase2.dat')
- REPLACE : 테이블에 데이타 넣는 방법 지정 합니다.
- INTO TABLE table_name : 데이타를 로드하는 테이블을 지정 합니다.
- FIELD TERMINATED BY ',' : 데이타 필드의 종결문자를 지정 합니다.
※ 참고로 Replace외에 다음의 옵션이 가능 합니다.
- REPLACE : 테이블의 기존 행을 모두 삭제(delete)하고 Insert합니다.
- APPEND : 새로운 행을 기존의 데이타에 추가 합니다.
- INSERT : 비어 있는 테이블에 넣을 때 사용 합니다.
- TRUNCATE : 테이블의 기존 데이타를 모두 truncate 하고 인서트 합니다.
Control File에서 데이터를 포함하지 않을 경우에는 INFILE 다음에 DATA파일을 지정하고, BEGIN DATA 부터 생략 하시면 됩니다.
아래는 Control File에 데이터를 포함한 예제 입니다.
LOAD DATA INFILE * REPLACE INTO TABLE dept FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (DEPTNO, DNAME, LOC) BEGINDATA 12,RESEARCH,"SARATOGA" 10,"ACCOUNTING",CLEVELAND 11,"ART",SALEM
Control File에 정의된 형식으로 데이터를 가지고 있습니다.
SQL*Loader에서는 Load될 데이터를 Control File에 정의 할 수도 있고 Data File에 따로 분리해서 사용할 수도 있습니다.
SQL*Loader에 의해 생성됩니다.
Control File에 지정한 형식에 위배되는 데이터를 저장 합니다.
Load상태 정보를 저장 합니다.
로드된 행의 수, 로드되려다 데이터 에러로 인해 거부된 행의 수, 버려진 행의 수등의 테이블 로드 정보를 제공 합니다.
로드 시작/종료 시간, 총 경과 시간등의 통계 정보를 제공 합니다.
Reject 데이터는 Bad File에 저장 됩니다.
Bad File은 Load Format으로 쓰여지므로 이파일을 수정하여 Error를 고친후 다시 Input파일로 사용 할 수 있습니다.
데이터가 Reject되는 경우
Input Format이 틀릴 경우
행이 제약 조건 위배 등의 이유로 삽입될 수 없을 때
Discard File은 사용자가 지정한 조건에 맞지 않는 데이터를 저장 하는 파일입니다.
사용자가 지정한 WHEN절 옵션에 맞지 않는 데이터를 저장 합니다.
Discard File은 사용자에 의해 요구될 때 만 생성 됩니다.
Bad File과 같이 Load Format로 저장되므로 에서를 수정하여 다시 재사용 할 수 있습니다.
- 강좌 URL : http://www.gurubee.net/lecture/1119
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.