본문 바로가기

Oracle/sql * loader

[error] sql * loader


log

SQL*Loader: Release 10.2.0.1.0 - Production on 목 4월 16 12:52:39 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

제어 파일:    D:\temp\udrcdr/CDR_SRC.ctl
데이터 파일:    D:\temp\udrcdr/SAMPLE2.dat
  파일처리 옵션 문자열: "str X'0D0A'"
  잘못된 파일: D:\temp\udrcdr/CDR_SRC.bad
  폐기 파일:   D:\temp\udrcdr/CDR_SRC.dsc
 (모든 폐기된 레코드 허용)

로드할 건수: ALL
생략 건수:  2
허용 오류수:  999990
바인드 배열:  64 행, 최대 256000 바이트
계속:    지정 사항 없음
사용된 경로:      규약

테이블 LAPSRC.C$_0CDR, 로드되었습니다 when C1_CDR_HEADER = 0X43445244415441(문자 'CDRDATA')
이 테이블에 적당한 Insert 옵션: REPLACE

   열 이름                        위치    Len   Term Encl 데이터유형
------------------------------ ---------- ----- ---- ---- ---------------------
C1_CDR_HEADER                       FIRST     *   #       CHARACTER           
C2_CDR_VERSION                       NEXT     *   #       CHARACTER           
C3_CDR_DATA_TYPE                     NEXT     *   #       CHARACTER           
C4_CDR_UDR_TYPE                      NEXT     *   #       CHARACTER           
C5_CDR_CDR_TYPE                      NEXT     *   #       CHARACTER           
C6_UDR_MSID                          NEXT     *   #       CHARACTER           
C7_CDR_SOURCE_IP                     NEXT     *   #       CHARACTER           
C8_UDR_CORRELATION_ID                NEXT     *   #       CHARACTER           
C9_UDR_ACCOUNT_SESSION_ID            NEXT     *   #       CHARACTER           
C10_UDR_PDSN_FA_ADDRESS              NEXT     *   #       CHARACTER           
C11_UDR_NAI                          NEXT     *   #       CHARACTER           
C12_UDR_BS_MSC_ID                    NEXT     *   #       CHARACTER           
C13_UDR_FORWARD_MUX_OPTION           NEXT     *   #       CHARACTER           
C14_UDR_REVERSE_MUX_OPTION           NEXT     *   #       CHARACTER           
C15_UDR_SERVICE_OPTION               NEXT     *   #       CHARACTER           
C16_UDR_IP_TECHNOLOGY                NEXT     *   #       CHARACTER           
C17_UDR_RELEASE_INDICATOR            NEXT     *   #       CHARACTER           
C18_UDR_SERVING_PCF                  NEXT     *   #       CHARACTER           
C19_CDR_SRC_MIN                      NEXT     *   #       CHARACTER           
C20_CDR_DESTINATION_MIN              NEXT     *   #       CHARACTER           
C21_CDR_START_TIME                   NEXT     *   #       CHARACTER           
C22_CDR_START_TIME_MSEC              NEXT     *   #       CHARACTER           
C23_CDR_DUMMY1_3BYTES                NEXT     *   #       CHARACTER           
C24_CDR_END_TIME                     NEXT     *   #       CHARACTER           
C25_CDR_END_TIME_MSEC                NEXT     *   #       CHARACTER           
C26_CDR_DUMMY2_3BYTES                NEXT     *   #       CHARACTER           
C27_CDR_SOURCE_PORT                  NEXT     *   #       CHARACTER           
C28_CDR_DUMMY3_2BYTES                NEXT     *   #       CHARACTER           
C29_CDR_DESTINATION_IP               NEXT     *   #       CHARACTER           
C30_CDR_DESTINATION_PORT             NEXT     *   #       CHARACTER           
C31_CDR_DUMMY4_2BYTES                NEXT     *   #       CHARACTER           
C32_CDR_TOTAL_UP_SIZE                NEXT     *   #       CHARACTER           
C33_CDR_TOTAL_DOWN_SIZE              NEXT     *   #       CHARACTER           
C34_CDR_REAL_UP_SIZE                 NEXT     *   #       CHARACTER           
C35_CDR_REAL_DOWN_SIZE               NEXT     *   #       CHARACTER           
C36_CDR_SERVICE_ID                   NEXT     *   #       CHARACTER           
C37_CDR_SERVICE_TYPE                 NEXT     *   #       CHARACTER           
C38_CDR_SUPPLEMENT_SERVICE_TYP       NEXT     *   #       CHARACTER           
C39_CDR_URL                          NEXT     *   #       CHARACTER           
C40_CDR_GENERATION_CODE              NEXT     *   #       CHARACTER           
C41_CDR_DUMMY5_3BYTES                NEXT     *   #       CHARACTER           
C42_CDR_QOS                          NEXT     *   #       CHARACTER           
C43_CDR_NETWORK_RETRY_COUNT          NEXT     *   #       CHARACTER           
C44_CDR_APPLICATION_RETRY_COUN       NEXT     *   #       CHARACTER           
C45_CDR_LAST_NETWORK_RETRY_ERR       NEXT     *   #       CHARACTER           
C46_CDR_LAST_APP_RETRY_ERROR         NEXT     *   #       CHARACTER           
C47_CDR_IP_PROTOCOL                  NEXT     *   #       CHARACTER           
C48_CDR_DUMMY6_14BYTES               NEXT     *   #       CHARACTER           
C49_CDR_UP_PACKET_COUNT              NEXT     *   #       CHARACTER           
C50_CDR_DOWN_PACKET_COUNT            NEXT     *   #       CHARACTER           
C51_CDR_RETRANS_UP_PACKET_COUN       NEXT     *   #       CHARACTER           
C52_CDR_RETRANS_DOWN_PACKET_CO       NEXT     *   #       CHARACTER           

ROWS 매개변수에 사용된 값이 64에서 19(으)로 변경됨
테이블 LAPSRC.C$_0CDR:
  0 행 로드되었습니다.
  데이터 오류 때문에 0 행(이)가 로드되지 않았습니다
  모든 WHEN절이 실패하여 0 행(이)가 로드되지 않았습니다
  모든 필드가 NULL이어서 0 행(이)가 로드되지 않았습니다


바인드 배열에 할당된 영역:            254904바이트(19 행)
읽기 버퍼 바이트: 1048576

생략된 논리 레코드의 합계:         1
읽어낸 논리 레코드의 합계:         0
거부된 논리 레코드의 합계:         0
폐기된 논리 레코드의 합계:         0

목 4월  16 12:52:39 2009에 실행 개시
목 4월  16 12:52:39 2009에 실행 종료

경과 시간:        00:00:00.16
CPU 시간:         00:00:00.11

ctl file

OPTIONS (
 SKIP=2,
 ERRORS=999990,
 DIRECT=FALSE
 )
LOAD DATA
INFILE "D:\temp\udrcdr/SAMPLE2.dat" "str X'0D0A'"
BADFILE "D:\temp\udrcdr/CDR_SRC.bad"
DISCARDFILE "D:\temp\udrcdr/CDR_SRC.dsc"
replace
INTO TABLE LAPSRC.C$_0CDR
when (C1_CDR_header='CDRDATA')

FIELDS TERMINATED BY X'23'

(
 C1_CDR_HEADER ,
 C2_CDR_VERSION ,
 C3_CDR_DATA_TYPE ,
 C4_CDR_UDR_TYPE ,
 C5_CDR_CDR_TYPE ,
 C6_UDR_MSID ,
 C7_CDR_SOURCE_IP ,
 C8_UDR_CORRELATION_ID ,
 C9_UDR_ACCOUNT_SESSION_ID ,
 C10_UDR_PDSN_FA_ADDRESS ,
 C11_UDR_NAI ,
 C12_UDR_BS_MSC_ID ,
 C13_UDR_FORWARD_MUX_OPTION DECIMAL EXTERNAL,
 C14_UDR_REVERSE_MUX_OPTION DECIMAL EXTERNAL,
 C15_UDR_SERVICE_OPTION DECIMAL EXTERNAL,
 C16_UDR_IP_TECHNOLOGY DECIMAL EXTERNAL,
 C17_UDR_RELEASE_INDICATOR DECIMAL EXTERNAL,
 C18_UDR_SERVING_PCF DECIMAL EXTERNAL,
 C19_CDR_SRC_MIN ,
 C20_CDR_DESTINATION_MIN ,
 C21_CDR_START_TIME ,
 C22_CDR_START_TIME_MSEC ,
 C23_CDR_DUMMY1_3BYTES ,
 C24_CDR_END_TIME ,
 C25_CDR_END_TIME_MSEC ,
 C26_CDR_DUMMY2_3BYTES ,
 C27_CDR_SOURCE_PORT DECIMAL EXTERNAL,
 C28_CDR_DUMMY3_2BYTES ,
 C29_CDR_DESTINATION_IP ,
 C30_CDR_DESTINATION_PORT DECIMAL EXTERNAL,
 C31_CDR_DUMMY4_2BYTES ,
 C32_CDR_TOTAL_UP_SIZE DECIMAL EXTERNAL,
 C33_CDR_TOTAL_DOWN_SIZE DECIMAL EXTERNAL,
 C34_CDR_REAL_UP_SIZE DECIMAL EXTERNAL,
 C35_CDR_REAL_DOWN_SIZE DECIMAL EXTERNAL,
 C36_CDR_SERVICE_ID ,
 C37_CDR_SERVICE_TYPE ,
 C38_CDR_SUPPLEMENT_SERVICE_TYP ,
 C39_CDR_URL ,
 C40_CDR_GENERATION_CODE ,
 C41_CDR_DUMMY5_3BYTES ,
 C42_CDR_QOS DECIMAL EXTERNAL,
 C43_CDR_NETWORK_RETRY_COUNT DECIMAL EXTERNAL,
 C44_CDR_APPLICATION_RETRY_COUN DECIMAL EXTERNAL,
 C45_CDR_LAST_NETWORK_RETRY_ERR DECIMAL EXTERNAL,
 C46_CDR_LAST_APP_RETRY_ERROR DECIMAL EXTERNAL,
 C47_CDR_IP_PROTOCOL ,
 C48_CDR_DUMMY6_14BYTES ,
 C49_CDR_UP_PACKET_COUNT DECIMAL EXTERNAL,
 C50_CDR_DOWN_PACKET_COUNT DECIMAL EXTERNAL,
 C51_CDR_RETRANS_UP_PACKET_COUN DECIMAL EXTERNAL,
 C52_CDR_RETRANS_DOWN_PACKET_CO DECIMAL EXTERNAL
)

문제점 :

에러는 발생하지 않는데 모든 데이터가 bad file로 분류되고 적재되지 않는다.

원인 해결책 :

잘은 모르겠으나  "str X'0D0A'" 이부분을 삭제하니 잘 진행 되었다.
이유는 찬찬히 보기로 하자.
이정주가 찾았다.
windows sqlldr return code - 2 : At least one row rejected   (참고 :  http://widecheon.tistory.com/107 )

내가 지금 작성한 프로그램은
두가지의 패턴을 가지고 잇는 테이블이므로
rejected 가 나오는것이 당연하므로
무시해도 됨.

 후에 이 return 값을 받았을 때의 처리를 jython code로 구현하면
 여러개의 포멧이 있을 경우나 하나의 포멧만 있는경우의 처리를 할 수 있을 것으로 보임.