2009-01-13 5 views
8

SSIS의 Foreach 루프에서 작업이 실패하면 다음 반복으로 루프에서 벗어날 수있는 방법이 있습니까?Foreach 루프 Microsoft SSIS - break 문과 동일

룩업에서보고하고 싶은 값이 반환되지 않으면이 파일의 값을 사용하여 조회를 수행하고이 파일에 대해 다른 작업을 수행하지 않습니다. break 문에 해당하는 것이 없으면 어떻게 달성 할 수 있습니까?

답변

4

변수가 true 인 동안 루핑과 같은 부울 조건과 함께 'for'루프를 사용할 수도 있습니다. 그런 다음 루프에서 빠져 나오기를 원하면 해당 변수의 값을 false로 변경하면 루프에서 빠져 나옵니다.

질문에 답변 ... foreach 루프는 컬렉션 및 기타 열거 가능한 구문이 반복 될 때까지 반복합니다. 따라서 해결 방법을 찾거나 'foreach'루프 대신 'for'루프 만 사용할 수 있습니다. 그런 식으로 조건 표현식을 설정했기 때문에 루프에 대한 프로그래밍 유형 제어가 더 많습니다.

0

성공한 흐름에서 벗어난 값이 반환되지 않으면 조회가 리디렉션 될 수 있습니다.

오류가 발생했음을 알기 위해서는 나머지 foreach 루프가 필요합니다. 따라서 로깅을하기 전에 오류가 발생하면 패키지 변수를 설정하는 것이 좋습니다.

그런 다음 조회 후 '성공'화살표에서 조건부 성공으로 변경할 수 있으므로 변수 값이 오류 값이 아닌 경우에만 진행됩니다.

0

그래서 나는 그 문제를 해결하고 a) 실패한 작업을 아무 것도하지 않고 종료 한 가짜 작업으로 유도하고 b) 'FORCEEXECUTIONRESULTS'를 'SUCCESS'로 설정하여 원하는대로 길을 닦았다. 그것까지.

0

그리고 또 다른 방법은 시퀀스 컨테이너를 루프에 넣은 다음 조건 단계를 시퀀스 컨테이너에 넣는 것입니다. '계속'해야하는 모든 결정은 시퀀스 컨테이너를 종료해야합니다. 오류 트래핑을 포함하여 원하는 모든 컨트롤을 구현하는 것은 매우 간단합니다.