2015-01-09 10 views
0

디렉터리에서 파일을 가져 와서 파일을 데이터베이스로 가져 오는 SSIS 패키지가 있습니다. 매우 간단합니다. 유일한 문제는 입력 파일의 이름이 현재 날짜 (예 : \ path \ to \ file \ filename_010115.txt, 010115는 2015 년 1 월 1 일임)를 기준으로 지정되었습니다.XML 구성을 사용하는 SSIS 패키지, 동적 파일 위치 소스

이 패키지는 맞춤 bat 파일 플랫 파일 소스에 대한 연결 관리자를 현재 날짜 형식의 파일 이름으로 설정하고이를 dtexec.exe에 직접 전달합니다. 그러나 우리 환경에서는 XML 구성 파일을 사용하고 BAT 파일은 사용하지 말 것을 요구합니다. xml에 파일 소스 "접두사"를 설정하고 파일을 가져 오기 전에 날짜 형식의 파일 이름을 추가하는 간단한 방법이 있습니까?

답변

0

접근 방식을 재구성 해 보았습니까? XML, 테이블, 환경 또는 레지스트리 키와 같이 구성을 사용하여 정상적으로 처리 할 수는 없습니다. SSIS 패키지를 시작하기도 전에 가장 간단한 경우 테이블을 사용하면 프로세스가 현재 날짜를 사용하도록 해당 테이블을 업데이트해야합니다. SQL Agent와 같은 예약 도구는 SQL 명령을 실행할 수 있습니다. XML 경로를 사용하려는 경우 구성 파일을 수정하기 위해 작은 응용 프로그램이나 PowerShell 명령을 사용합니다. 다시 말하지만, SSIS 패키지가 시작될 때마다 값을 설정하고 구성 소스를 다시는 확인하지 않으므로 매일 파일을 수정해야합니다.

당신 하여 플랫 파일 원본의 연결 문자열의 일부로하지만 하루 이상의 파일을 처리하거나 어제의 파일을 다시 처리해야하는 경우에 현재 날짜를 사용하는 SSIS에서 식을 사용할 수 있습니다, 당신은 숙일하고 있고 수동으로 소스 파일의 이름을 바꾸거나 시스템 시계를 변경해야하며 아무도 그렇게하지 않을 것입니다.

보다 정규적인 방법은 Foreach (파일) 루프 컨테이너를 사용하는 것입니다. 원본 폴더를 가리키고 패턴과 일치하는 모든 파일을 찾으십시오. 여기서 처리 된 파일을 같은 폴더에서 이동한다고 가정합니다. Foreach Container는 일치하는 모든 파일을 찾고 선택한 변수로 현재 목록을 팝하는 목록을 열거합니다.

내가 게시 제한이 당신이 제시 한 사용 사례 중 하나가없는

+0

에 작업의 예를 참조하지만, 이렇게 ... 나는를 사용하여 문제를 해결했다 맞춤 변수와 SSIS의 표현식에 대해 질문을 던졌습니다. 저는 SQL Developer가 아니며 SSIS 패키지 개발에 너무 익숙하지 않았습니다 (새로운 도구를 배우기 위해 어떤 방향을 찾고있었습니다). 그러나 표현 기능을 찾아 관리 할 수있었습니다. – Rob