2010. 6. 3. 23:54

For컨테이너-무한루프

 

Question
FOR 문을 이용해서 무한적으로 반복해서 실행하고 싶은 작업이 있습니다.
그러면서도 작업과 작업 사이에 대기시간을 5초 정도 주고 싶습니다.
즉, 매번 반복되면서 5초에 한번씩 A 라는 곳에서 select 해서 B 라는 곳으로 Insert 하는 작업이 필요합니다.
대기시간 주는 것은 여기 사이트에 예시도 있어서 가능 할 것 같은데 계속 실행되면서  select 하려면 어떻게 해야 할까요?
작업할때 이렇게 대기와 loop가 필요할 때가 있다 JOB으로 등록했을때는 주기가 1분 마다 밖에 안되기 때문에 초 단위 대기가 필요할때는 이렇게 해야한다.

 

다음과 같이 For루프 컨테이너를 추가합니다.

 

 

 

루프 편집기에서 다른 조건은 설정할 필요 없이 EvalExpression 속성 값에 true 입력합니다.

 

 

이렇게 설정하는 것은 쿼리에서

 

WHILE (1=1)

BEGIN

 

END

 

비슷한 형태입니다.

 

이제, For 루프 컨테이너 안에 필요한 작업들을 설정해서 넣고선, 5 동안 대기하는 것을 구현해야 합니다.

 

이전에 올린 글에 FOR 루프 컨테이너를 이용해서 일정 시간 동안 대기하는 것을 구현한 것이 있습니다. 하지만 방법은 쓰지 마시기 바랍니다. (CPU 과도하게 높이 올라갑니다.)

http://www.sqlleader.com/mboard.asp?exec=view&strBoardID=SS2005SSIS&intSeq=523

 

대신, SQL 명령을 이용하는 것이 가장 바람직할 같습니다.

 

작업들을 구성한 , 가장 마지막 부분에 SQL 실행 작업을 추가한 ,

 

 

DB 연결을 설정하고, 다음과 같은 간단한 명령을 사용합니다.

) 5 동안 대기를 해야 경우

                  WAITFOR DELAY ’00:00:05’

 

 

 

 

 

루핑 마다 마지막 단계에서 5초간 대기하는 무한 루프가 만들어졌습니다.

 

 

이 글은 스프링노트에서 작성되었습니다.

'Business Inteligence (SSIS)' 카테고리의 다른 글

SSIS::플랫 파일 가져오기 에러.  (0) 2012.02.09
SQL2008에서 SQL2000 DTS열기  (0) 2010.06.07
스크립트task사용  (0) 2010.06.03
Debugging and Logging in SSIS  (0) 2010.06.03