posted by 구름너머 2005. 9. 14. 15:31

sql*loader를 사용하다가

필요없는 데이터를 Skip하고 싶을 경우가 있다.

즉, 데이터 파일에 헤더 정보가 있고 그 다음줄부터

로드할 데이터들이 올경우가 한 예이다.

이런 경우 첫줄은 항상 에러레코드로 *.bad 파일로

쌓이게 된다. 이것을 해결하려면......?

예)

아래부터 데이터 파일의 내용임.

사업자 수량 단가 금액
011 220637 7239 906.00
016 220637 7239 360906.00
019 220637 7239 360906.00

이런경우 첫줄의 헤더를 무시하고 로드하고 싶은 경우.

LOAD DATA
APPEND
INTO TABLE TB_TEST
WHEN (42)='.' <==== 금액의 소숫점은 일정한 위치에 있으므로 42번째 칼럼이 . 인 경우만 로드한다.
(
BILL_MONTH POSITION(10:15) CHAR,
OCCUR_MONTH POSITION(17:22) CHAR,
OCCUR_S_DATE POSITION(17:24) CHAR,
OCCUR_E_DATE POSITION(26:33) CHAR,
SETTLE_CARRIER POSITION(41:43) CHAR,
USE_COUNT POSITION(52:64) INTEGER EXTERNAL,
USE_TIME POSITION(65:79) INTEGER EXTERNAL,
BILL_AMT POSITION(80:97) DECIMAL EXTERNAL
)

replace 테이블의 기존 행을 모두 삭제(delete)하고 insert

append 새로운 행을 기존의 데이타에 추가

insert 비어 있는 테이블에 넣을 때

truncate 테이블의 기존 데이타를 모두 truncate 하고 insert

관련사이트 :

http://211.106.111.2:8880/bulletin/list.jsp?seq=10194&pg=1&sort_by=last_updated&comp=ORACLE_SERVER&keyfield=subject&keyword=sql*loader

'ORACLE' 카테고리의 다른 글

오라클 한글깨짐.  (0) 2005.11.04
오라클 에러들....  (0) 2005.09.29
TOAD_PLAN_TABLE  (0) 2005.08.25
PK인덱스에 PK 칼럼 추가  (0) 2005.08.22
파티션 테이블에 파티션 추가하기  (0) 2005.05.03