1. With Work Table C$_0
10.1.3.1.5.0.0
10.1.3.1.4.0.0
10.1.3.1.5.0.0
10.1.3.1.4.0.0
2. No Work Table, No IKM
10.1.3.1.5.0.0
10.1.3.1.4.0.0
10.1.3.1.5.0.0
10.1.3.1.4.0.0
3. Add calling sqlldr using jython
This is the Version 1.0
파일의 차이점
1. 특징 : work table을 사용하여 로딩하고 로딩된 work table의 데이터를 trg에 옮기는 작업을 한다.
LKM은 work tab에 적재하는 로직이므로 IKM을 설정해주어야 타겟으로 적재 가능하다.
- 장점 : operator에서 log를 통해 insert가 몇건이 되었는지 완료된 시점에 쉽게 확인 할 수 있다.
로딩이 성공한 시점에만 실 타겟 테이블로 이관작업을 실행하므로 실패했을경우에는 부하가 없다.
- 단점 : 중간단계에서 테이블을 한번 거쳐 가니까, 역시 시간이 오래걸린다.
로딩이 성공한 시점에만 실 타겟 테이블로 이관작업을 실행하므로 실패했을경우에는 부하가 없다.
- 단점 : 중간단계에서 테이블을 한번 거쳐 가니까, 역시 시간이 오래걸린다.
2. 특징 : work table을 거치지 않고 바로 trg에 적재 IKM은 의미없는 dummy로 설정한다.
3. 특징 : 2번 파일에서 오류 체크 기능 추가.
LKM File to Oratabs5NoWRKv1_1 사용 방법 :
1. 사용할 LKM을 다운받아 가져오기를 사용해서 가져온다.
2. Target Table을 바탕으로 뽑아 내려고 하는 데이터 저장소를 생성하기위한 방법으로 다이어그램 복사 방벙을 사용한다. (target table과 같은 format을 가진 데이터저장소를 생성)
3. 생성한 데이터 저장소에 파일을 정의해주고 파일의 구분 형식 또한 알맞게 수정한다.
4. 인터페이스를 생성한다. Source는 방금 생성한 파일이 되고 Target table을 정의 한다.
5. 흐름 탭에서 LKM을 LKM File to Oratabs5NoWRK로 정의 한다.
옵션을 반드시 수정해주어야한다.
PATTERN_ : 서로 다른 테이블임을 확인할 수 있도록 구분 한 문자구분자. ( ex> udr | cdr )
METHOD_ : 데이터를 테이블에 넣을 방식 지정
METHOD_ : 데이터를 테이블에 넣을 방식 지정
replace -> 테이블의 기존 행을 모두 삭제(delete)하고 Insert(7.0 에서는 truncate 함)
append -> 새로운 행을 기존의 데이타에 추가
insert -> 비어 있는 테이블에 넣을 때
truncate -> 테이블의 기존 데이타를 모두 truncate 하고 인서트(7.0에는 없음)
TEMP_TABLE_COLUMN_NAME_ : 패턴이 저장될 타겟테이블의 컬럼 명.6. IKM 설정
타겟의 IKM 은 의미가 없는것으로 하는것편이 좋다.
이유는 현재 작성된 LKM은 Work Table없이 LKM에서 바로 Target 으로 적재를 완료하기 때문에
IKM dummy를 넣는다.
실행한 결과를 Operator로 확인.
Operator에서 insert건수를 확인할 수 없기 때문에 파일로 저장된 로그파일을 확인하여 진행결과를 확인할 수 있다.
LOG 확인
SQL*Loader: Release 10.2.0.1.0 - Production on 금 4월 17 14:49:16 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
제어 파일: D:/temp/udrcdr/UDROLD.ctl
데이터 파일: D:/temp/udrcdr/SAMPLE2.dat
잘못된 파일: D:/temp/udrcdr/UDROLD.bad
폐기 파일: D:/temp/udrcdr/UDROLD.dsc
(모든 폐기된 레코드 허용)
데이터 파일: D:/temp/udrcdr/SAMPLE2.dat
잘못된 파일: D:/temp/udrcdr/UDROLD.bad
폐기 파일: D:/temp/udrcdr/UDROLD.dsc
(모든 폐기된 레코드 허용)
로드할 건수: ALL
생략 건수: 0
허용 오류수: 0
바인드 배열: 64 행, 최대 256000 바이트
계속: 지정 사항 없음
사용된 경로: 규약
생략 건수: 0
허용 오류수: 0
바인드 배열: 64 행, 최대 256000 바이트
계속: 지정 사항 없음
사용된 경로: 규약
테이블 LAPSRC.UDR, 로드되었습니다 when UDR_HEADER = 0X55445244415441(문자 'UDRDATA')
이 테이블에 적당한 Insert 옵션: REPLACE
TRAILING NULLCOLS 옵션 유효
이 테이블에 적당한 Insert 옵션: REPLACE
TRAILING NULLCOLS 옵션 유효
열 이름 위치 Len Term Encl 데이터유형
------------------------------ ---------- ----- ---- ---- ---------------------
UDR_HEADER FIRST * # CHARACTER
UDR_VERSION NEXT * # CHARACTER
UDR_DATA_TYPE NEXT * # CHARACTER
......
UDR_IP_QOS NEXT * # CHARACTER
UDR_AIRLINK_QOS NEXT * # CHARACTER
------------------------------ ---------- ----- ---- ---- ---------------------
UDR_HEADER FIRST * # CHARACTER
UDR_VERSION NEXT * # CHARACTER
UDR_DATA_TYPE NEXT * # CHARACTER
......
UDR_IP_QOS NEXT * # CHARACTER
UDR_AIRLINK_QOS NEXT * # CHARACTER
ROWS 매개변수에 사용된 값이 64에서 22(으)로 변경됨
레코드 1: 폐기됨 - 모든 WHEN절 실패
레코드 88: 폐기됨 - 모든 WHEN절 실패
.......
레코드 518: 폐기됨 - 모든 WHEN절 실패
레코드 519: 폐기됨 - 모든 WHEN절 실패
테이블 LAPSRC.UDR:
224 행 로드되었습니다.
데이터 오류 때문에 0 행(이)가 로드되지 않았습니다
모든 WHEN절이 실패하여 295 행(이)가 로드되지 않았습니다
모든 필드가 NULL이어서 0 행(이)가 로드되지 않았습니다
레코드 1: 폐기됨 - 모든 WHEN절 실패
레코드 88: 폐기됨 - 모든 WHEN절 실패
.......
레코드 518: 폐기됨 - 모든 WHEN절 실패
레코드 519: 폐기됨 - 모든 WHEN절 실패
테이블 LAPSRC.UDR:
224 행 로드되었습니다.
데이터 오류 때문에 0 행(이)가 로드되지 않았습니다
모든 WHEN절이 실패하여 295 행(이)가 로드되지 않았습니다
모든 필드가 NULL이어서 0 행(이)가 로드되지 않았습니다
바인드 배열에 할당된 영역: 255420바이트(22 행)
읽기 버퍼 바이트: 1048576
생략된 논리 레코드의 합계: 0
읽어낸 논리 레코드의 합계: 519
거부된 논리 레코드의 합계: 0
폐기된 논리 레코드의 합계: 295
읽어낸 논리 레코드의 합계: 519
거부된 논리 레코드의 합계: 0
폐기된 논리 레코드의 합계: 295
금 4월 17 14:49:16 2009에 실행 개시
금 4월 17 14:49:16 2009에 실행 종료
금 4월 17 14:49:16 2009에 실행 종료
경과 시간: 00:00:00.20
CPU 시간: 00:00:00.11
CPU 시간: 00:00:00.11