독도 광고 모금 캠페인

[Oracle] Shell에서 SqlLoader 사용


SqlLoader를 이용하면 텍스트등으로 된 데이터파일을 쉽게 처리할 수 있습니다.
해당 파일의 데이터를 읽어서 지정된 테이블에 Insert를 하게됩니다.
External Table은 지정된 파일을 테이블을 통해 읽어들이는 것이기에 SqlLoader와는 다름니다.

제어, 데이터, 로그, 오류, 폐기 파일들이 필요하지만 모두가 필수는 아닙니다. 기본적으로 제어와 데이터 파일만 있으면 실행이 가능합니다. 필요에 따라 로그와 오류정보 파일은 생성해주면 됩니다.

데이터파일은 일정한 패턴에 맞게 생성되었다라고 가정합니다.
- 데이터 파일
1^test^테스트데이터^2008-11-01 12:34:52
2^qweqweqwr^dfgewrgergerg^2008-11-01 18:02:17

제어 파일은 데이터파일을 읽어들여서 Insert 처리를 합니다. 확장자는 .ctl로 작성합니다.
- 제어 파일
Load data
Infile '데이터파일경로/파일명'
Append
Into table 테이블명
Fields terminated by '데이터구분값'
Trailing nullcols
(
 idx,
 subject,
 contents,
 reg_date DATE "YYYY-MM-DD HH24:MI:SS" NULLIF (reg_date="NULL")
)

빨간글씨의 데이터경로는 해당 데이터파일의 위치를 입력해주고, 데이터구분값은 위에 데이터파일에서 ^로 구분하였기때문에 ^를 넣어줍니다.

파란글씨의 Append 부분은 다른 설정값을 사용할 수 있습니다.
REPLACE  - 해당테이블의 기존데이터를 모두 삭제하고 Insert
TRUNCATE - 해당테이블을 TRUNCATE 시킨후 Insert

APPEND   - 기존 데이터에 새로운라인의 데이터를 추가
INSERT   - 단순 Insert


Replace와 Truncate가 비슷하고, Append와 Insert가 비슷합니다.


실행방법은 직접 입력하거나 Shell에서 실행처리될 파일(sh)을 작성하여 처리합니다.

- 실행구문
sqlldr DB아이디/DB패스워드@DB명 control=제어파일경로 log=로그파일이 생성될경로 bad=오류파일이 생성될경로

데이터파일을 data=데이터파일경로 로 설정해줘도 되지만 제어파일에서 지정해주었기때문에 생략.

실행시킨후에 로그파일을 확인하여 그결과를 알아보면 됩니다.


이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback 0 Comment 0

Trackback : http://deuxism.tistory.com/trackback/2694657 관련글 쓰기

prev 1 2 3 4 5 6 7 8 ... 233 next