2013-04-01 2 views
3
에서 여러 행으로 폭 행을 고정

나는 고정 폭 플랫 파일을 가지고 있고 그 (하나 개의 행이 여러 행으로 분할 할 필요가) 여러 오라클 테이블에로드 상단에있는분할 SSIS

숫자해야 각 열의 크기는 이고 원하는 출력은 다음과 같아야합니다.

Flatfile data(fixed width): 
3 6 3 11   3 10  3 10  3 
ID NAME AGE CTY1  ST1 CTY2  ST2 CTY3  ST3 
200JOHN 46 LOSANGELES CA HOUSTON TX CHARLOTTE NC 
201TIMBER54 PHOENIX AZ    CHICAGO IL 
202DAVID 32 ATLANTA GA PORTLAND AZ 

다를 수 있습니다 발생은 .. 그것은 몇 가지 중 하나가 나를 도울 수 20 ~ 30

DESIRED OUTPUT: 
TABLE1 
ID NAME AGE 
200JOHN 46 
201TIMBER54 
202DAVID 32 


TABLE2 
ID SEQ CTY  ST 
200 1 LOSANGELES CA 
200 2 HOUSTON TX 
200 3 CHARLOTTE NC 
201 1 PHOENIX AZ  
201 2 CHICAGO IL   
202 1 ATLANTA GA 
202 2 PORTLAND AZ 

개까지 확장 할 수 있습니까?

감사합니다.

+0

당신이 날 당신이 무슨 뜻인지 이해하는 데 도움이 수 (결과가 TABLE1입니다) 여기에 두 번째 멀티 캐스트 데이터 흐름의 변환에 연결 달라질 수 있습니다. 그것은 20-30까지 자랄 수 있습니까? " – billinkc

+0

일반적으로 말하지만, 당신이하고자하는 것은 귀하의 데이터를 UNPIVOT하는 것입니다. – billinkc

+0

응답 해 주셔서 감사합니다 ... 여기에 언급 된 샘플 데이터에는 최대 cty3 nas st3이 있지만 데이터는 cty18 st18 또는 cty20 st20에서 종료 될 수 있습니다. –

답변

1

먼저 @bilinkc의 조언을 듣고 unpivot으로이를 해결하려고합니다. SSIS 피벗 데이터 흐름 변환을 사용하는 방법에 대한 자세한 내용은

Click here

그러나 SSIS로이 문제를 해결하고 싶다면 SSIS와 하나의 데이터 흐름을 사용하여 문제를 해결하는 것이 기술적으로 가능하다고 (나는) 기뻐합니다.

1) 패키지

2) 데이터 흐름에 플랫 파일 원본을 추가로

3 작업

을 데이터 흐름 작업 추가) 구성 : 아래

이 단계의 요약 목록입니다 당신의 플랫 파일

4 연결 관리자 플랫 파일 원본) 귀하의 데이터 흐름 작업

에 멀티 캐스트 데이터 흐름 변환 추가 403,210 5) 이제 멀티 캐스트 데이터 흐름 변환



은 "재미"부분으로 플랫 파일 원본을 연결합니다 (복사 및 붙여 넣기는

6) 30 조건부 추가 ...) 여기 당신에게 시간을 절약 할 수 있습니다 분할 데이터 흐름 변환하여 데이터 흐름 작업

7) 각 조건부 분할 데이터 흐름

8) 행 집합을 가져 오기 위해 각 조건부 분할 N을 구성하는 멀티 캐스트 데이터 흐름의 변환을 연결 주립 N의 조건부 분할 한

출력 이름 : D 시티는 N 값을

예제가 CTY1_ST1

조건 : [CTY1] = ""& & [ST1]!= ""

9) 당신의 30 조건부 분할

11) 파생 열 이름 서열과 각 구성에 각각 연결) 데이터가

10

흐름에 (30 개) 파생 열 데이터 흐름 변환 추가 30

12에 값 1) 위로 함께 조합의 모든 데이터 흐름 변화와 연합 데이터 파이프 모두 30



0,123,516 추가는 이제 "쉽게"부분은 ...

13) 첫 번째 정렬 변환

15)을 넣어 31 번째 멀티 캐스트 파이프를 연결하여 데이터 흐름 작업

14)에 첫 번째 정렬 변환 추가 과 종류 ID로 다음 체크 표시 (희망 ID : NAME 및 ID : AGE는 1 : 1)

16) 두 번째 멀티 캐스트 데이터 흐름 변환 추가)

(17) 값 중복 종류와 행을 제거 확인,210

18) 두 번째 정렬 변환과 종류 ID

20)을 병합하여 데이터 흐름 작업에 가입 추가하여 귀하의 모든 데이터 흐름 작업

19)에 연결하여 연합 (EU)에 두 번째 정렬 변환 추가

21) 왼쪽 입력

22) 오른쪽 입력으로 가입하여 병합에 두 번째 정렬 변환 연결로 두 번째 멀티 캐스트 데이터 흐름의 변환을 연결

,451,515,

23) 병합이 같은 유형 = 내부로 가입하고 선택 열 ID는, 서열, CTY,

24 ST

가) 데이터 흐름에 첫 번째 OLE DB 대상을 추가하고 병합 그것에 가입 연결 가입 가입 구성 (결과 TABLE2가 발생 "에 의해)

25

) 데이터 흐름에 두 번째 OLE DB 대상을 추가하고