1. Control File
▒ Control File의 정의
① Control File은 Load할 데이터에 대한 설명을 기술한 파일 입니다.
② 데이터를 로드 할 오라클 테이블과 컬럼을 명시 합니다.
③ 테이블 내에 데이터와 컬럼 사이의 종속 관계를 지정 합니다.
▒ Control File 작성 Guide
① Control File은 대소문자 구분없이 작성 할 수 있습니다.
② 대소문자 구분은 " "등으로 지정된 스트링 데이터를 제외하고는 중요하지 않습니다.
③ 주석은 -- 로 표시 합니다.
④ SQL*Loader의 예약어를 테이블 또는 컬럼명으로 사용 할 때에는 " "를 사용해야 합니다.
▒ Control File 예약어들
① LOAD DATA : 제어화일의 시작을 명시 합니다.
② INFILE : 외부화일을 지정 합니다. (ex. INFILE 'ulcase2.dat')
③ REPLACE : 테이블에 데이타 넣는 방법 지정 합니다.
④ INTO TABLE table_name : 데이타를 로드하는 테이블을 지정 합니다.
⑤ FIELD TERMINATED BY ',' : 데이타 필드의 종결문자를 지정 합니다.
※ 참고로 Replace외에 다음의 옵션이 가능 합니다.
- REPLACE : 테이블의 기존 행을 모두 삭제(delete)하고 Insert합니다.
- APPEND : 새로운 행을 기존의 데이타에 추가 합니다.
- INSERT : 비어 있는 테이블에 넣을 때 사용 합니다.
- TRUNCATE : 테이블의 기존 데이타를 모두 truncate 하고 인서트 합니다. (7.0에는 없음)
▒ Control File 예(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에서 데이터를 포함하지 않을 경우에는 INFILE 다음에 DATA파일을 지정하고,
BEGINDATA 부터 생략 하시면 됩니다.
2. Data File
① 콘트롤 파일에 정의된 형식으로 데이터를 가지고 있습니다.
② SQL*Loader에서는 Load될 데이터를 Control File에 정의 할 수도 있고
Data File에 따로 분리해서 사용할 수도 있습니다.
3. Log File
① SQL*Loader에 의해 생성됩니다.
② Control File에 지정한 형식에 위배되는 데이터를 저장 합니다.
③ Load상태 정보를 저장 합니다.
④ 로드된 행의 수, 로드되려다 데이터 에러로 인해 거부된 행의 수, 버려진 행의 수등의
테이블 로드 정보를 제공 합니다.
⑤ 로드 시작/종료 시간, 총 경과 시간등의 통계 정보를 제공 합니다.
4. Bad File
① Reject 데이터는 Bad File에 저장 됩니다.
② Bad File은 Load Format으로 쓰여지므로 이파일을 수정하여 Error를 고친후
다시 Input파일로 사용 할 수 있습니다.
③ 데이터가 Reject되는 경우
④ Input Format이 틀릴 경우
⑤ 행이 제약 조건 위배 등의 이유로 삽입될 수 없을 때
5. Discard File
① Discard File은 사용자가 지정한 조건에 맞지 않는 데이터를 저장 하는 파일입니다.
② 사용자가 지정한 WHEN절 옵션에 맞지 않는 데이터를 저장 합니다.
③ Discard File은 사용자에 의해 요구될 때 만 생성 됩니다.
④ Bad File과 같이 Load Format로 저장되므로 에서를 수정하여 다시 재사용 할 수 있습니다.
'DataBase > Oracle' 카테고리의 다른 글
[펌]with문을 활용하자 (0) | 2008.08.08 |
---|---|
SQL*LOADER에서 SEQUENCE함수와 DECODE함수 사용하는 방법 (0) | 2008.08.08 |
SQL*Loader란? (0) | 2008.08.08 |
SQL*Loader 예제 (0) | 2008.08.08 |
NVL2 함수의 사용 (0) | 2008.08.08 |