2013-07-18 3 views
1

SSIS를 처음 사용하는 경우 CSV를 행별로 여러 파일로 분할하는 데 약간의 문제가 있습니다.플랫 파일 행을 여러 개의 플랫 파일로 나누기 SSIS

여러 행이있는 CSV가 있습니다. 각 행을 새로운 플랫 파일로 분할하고 각 열을 플랫 파일에 새로운 행으로 만들려고합니다.

현재 파생 된 열로 펌핑하고 원하는 형식으로 데이터를 정렬하는 플랫 파일 소스가 있습니다. 이것을 테스트하기 위해 여러 행을 가진 1 개의 큰 플랫 파일로 출력했지만 각 행에 대해 파일을 생성하는 것이 이상적입니다.

나는 루프를 통해 각각을 사용해 보았지만 SSIS에서 사용하는 방법을 잘 모르겠습니다.

도움을 주시면 감사하겠습니다. 미리 감사드립니다.

답변

1

당신은 루프가 필요 없다고 생각합니다. C# 스크립트는 그 트릭을 수행 할 것입니다. 로 정의 블록 :

소스 -> [RowCounter에 변수 Counter] -> [스크립트 작업] -> 목적지

스크립트 작업 :

당신이 읽기 전용 매개 변수를 지정해야합니다 물론
int val = Convert.ToInt32(Dts.Variables["Counter"].Value); 
Dts.Connections["destinationConnectionName"].ConnectionString = "c:\\yourpath\\" + val.ToString() + ".txt"; 

: 계수기.

이렇게하면 각 행에 대한 연결 이름이 설정됩니다. 이미 가지고있는 정렬과 결합하십시오.

+0

이것은 내가 찾고있는 것에 가깝게 보이지만 내가 만드는 파일에 [count] 행만 출력하는 방법은 무엇입니까? 스크립트 코드를 구현하는 데 문제가 있습니다. - DTS를 좋아하지 않습니다. 감사합니다 – Bradley

+1

SSIS는 행 단위로 데이터를 처리합니다. 각 데이터 흐름은 전체 데이터 흐름 - 소스에서 대상까지입니다. 그러면 각 행이 새 파일로 출력됩니다. – makciook

+0

업데이트 된 답변보기,이게 나를 위해 작동 – makciook

0

데이터 흐름에서 Multicast Transformation을 사용하여 플랫 파일 원본에서 파생 된 각 레코드를 두 개 이상의 플랫 파일 대상으로 보낼 수 있습니다. 루프 컨테이너 나 스크립트 태스크를 사용하는 것보다 SSIS를 사용하는 것이 더 효율적인 방법 일 수 있습니다.

관련 문제