SQL Loader란?
간단하게 (대용량) 데이터 파일을 오라클 데이터 베이스에 쉽게 올리는 도구
데이터를 로드하기 위해서는 아래 다섯가지의 파일을 사용한다.
컨트롤파일 (Control File) : 필수 적인 파일이다. .ctl 확장자
1 -- This is a sample control file -> 주석의 입력
2 LOAD DATA -> 새 데이터 로드가 시작됨을 의미 짂행 중에 중단된 로드를 계속할 경우 CONTINUE LOAD DATA 문을 사용
3 INFILE ‟DATA.DAT‟ -> 외부 데이터 파일 지정, 포함하지 않을 경우 „*‟로 표시
4 BADFILE ‟DAD.bad‟ -> 거부된 레코드를 배치할 파일 이름을 지정
5 DISCARDFILE ‟sample.dsc‟ -> 페기된 레코드를 배치할 파일 이름을 지정
6 REPLACE -> 테이블에 데이터를 삽입하는 방법 지정 - REPLACE : 테이블의 기졲 행을 모두 삭제 하고 삽입 - APPEND : 새로운 행을 기졲의 데이터에 추가 - INSERT : 비어 있는 테이블에 넣을 때 사용 - TRUNCATE : 테이블의 기졲 데이터를 모두 삭제하고 삽입
7 INTO TABLE test -> 데이터를 로드 할 테이블 지정
8 WHEN (10) = ‟.‟ -> 데이터를 로드하기 젂에 만족시켜야 할 각 레코드의 필드 조건을 지정 이 예제는 10 번째 문자가 소수점인 경우에만 레코드를 삽입한다
9 FIELDS TERMINATED BY „,‟ -> 데이터 필드의 종결 문자를 지정
데이터파일 (Data File)
고정 레코드 형식 : INFILE 데이터 파일 이름 "fix_n"
->가장 융통성이 적지만 가변 형식이나 스트림 형식보다 더 나은 성능제공
가변 레코드 형식 : INFILE 데이터 파일 이름 "var n"
->고정 레코드 형식보다 더 나은 융통성을 제공, 스트림 레코드 형식보다는 더 나은 성능상이점을 제공
스트림 레코드 형식 : INFILE 데이터 파일 이름 "문자열 terminator_string"
(terminator_string은 'char_string' 또는 X'hex_string'중 하나로 지정)
(char_string : " "로 둘러싸인 문자열 의미 ,X'hex_string : 16진수 형식의 바이트 문자열 의미)
->융통성은 가장 뛰어 나지만 성능은 떨어짐
로그파일 (Log File)
로그 파일은 데이터 로드 상태 정보, 로드 된 행의 수, 로드 진행중 데이터 에러 때문에 거부된 행의 수, 버려진 행의 수 등 자세한 테이블 로드 정보가 포함된다.
배드파일 (Bad File)
BAD파일은 SQL Loader 또는 오라클 DB가 거부한 레코드를 포함한다.
이 파일의 포맷은 물론 원래의 데이터 파일과 동일하게 되며, 이러한 BAD File은 이 파일 내의 잘못된 부분을 수정한 뒤에 다시 데이터 파일로 사용할 수 있으며 필요한 경우에만 생성 된다.
디스카드파일 (DISCARD File)
SQL Loader가 실행되는 동안 폐기 파일이라는 파일을 생성할 수있다.
이 파일은 필요한 경우에만 생성되며 컨트롤 파일에 명시한 WHEN절의 조건에 맞지 않은 데이터를 저장하는 파일이다.
출처 : http://www.goodus.com/knowledge_pds/%EA%B8%B0%EC%88%A0%EB%85%B8%ED%8A%B8[43%ED%9A%8C]_SQLloader.pdf