0

숫자를 저장하기 위해 전역 변수 X를 사용하는 행 개수 구성 요소가 있습니다. 이 시점까지는 규칙을 따르지 만 ReadOnly 변수 중에 X가있는 스크립트 구성 요소를 추가 한 다음 일부 용도로 사용하면 흐름이 잠시 멈추고 행 수가 유효한 변수가 필요하다는 오류가 발생합니다.행 개수와 스크립트 구성 요소에 대해 동일한 변수를 사용하는 SSIS 2008

행 수를 변수에 저장 한 다음이 변수를 스크립트 comp에서 읽을 수 없습니까? ?

답변

8

당신은 당신이 동일한 데이터 흐름에서 다른 곳 행 개수 변환에 채울 변수를 사용할 수 없습니다

이 링크의 문서 접근 방법을 제안한다. 데이터 흐름의 PreExecute 단계에서 Row Count는 변수를 잠급니다. 스크립트 구성 요소에서 변수를 사용하면 스크립트에서 동일한 작업을 동시에 시도하므로 SSIS에서 오류가 발생합니다.

하지만 그 일이 발생하지 않는다고해도, 그 밖의 다른 일이 있습니다. 데이터 흐름이 작동하고 행 수가 행 개수로 전달되면 SSIS 변수에 실제로 행 개수가 채워지지 않습니다. 행 수는 실제로 COM 구성 요소이고 SSIS 변수는 .Net이므로 매우 비효율적입니다. COM에서 .NET 자원을 사용하는 것은 "비용이 많이 들며"그 반대의 경우도 마찬가지입니다. 따라서 행 수는 로컬 코드 변수에 값을 누적합니다. PostExecute 단계에서 Row Count는 수집 한 값을 SSIS 변수로 푸시합니다. 요점은 데이터 흐름이 완료된 후 PostExecute 단계가 발생한다는 것입니다. 데이터 흐름 중간에 언제든지 변수를 볼 수 있었다면 (방법이 있습니다) 0으로 평가 된 값 (또는 데이터 흐름이 시작되기 전에 설정된 값)을 볼 수 있습니다. 두 개의 데이터 흐름에

  • 당신은 데이터 흐름을 분할 할 수 있습니다 : 당신이 흐름 내에서 조건부 액션, 또는 업데이트 행을 수행 할 행의 수를 사용하려면

    , 당신은 몇 가지 선택이있다. RAW 파일 또는 SQL 테이블을 사용하여 플로우 # 1의 끝에서 "진행중인"데이터를 유지하여 플로우 # 2의 시작 부분에서 사용할 수 있도록하십시오.

  • 멀티 캐스트를 사용하여 흐름을 복제하고, Aggregate 구성 요소를 계산 한 다음 교차 결합을 수행하여 행 수를 각 행에 배치 할 수 있습니다. (Performing a Cross-Join (Cartesian Product) in SSIS를 참조하십시오.)
+1

얼마나 명확하고 구체적인가! 감사합니다 남자 – CoolStraw

+1

대단한 설명. 나는 전에 이것을 읽었 으면 좋겠다. ( – rvphx

1

아니요, Row Count에 사용 된 변수를 Script Component에서도 사용할 수 있다고 생각하지 않습니다.

변수가 행 개수 변환에 대한 쓰기 용으로 잠겨 있고 스크립트 구성 요소 변환에서 사용할 수 없다는 것을 알고 있습니다.

그럼 Script Component의 변수로 무엇을하려고합니까? 요구 사항을 지정할 수 있다면 누군가가 대안을 제안 할 수 있습니다. http://consultingblogs.emc.com/jamiethomson/archive/2007/02/28/SSIS-Nugget_3A00_-Output-the-rowcount.aspx

+0

Thx Siva; 내가하고 싶은 것은 스크립트에서이 변수의 값을 얻는 것뿐입니다. – CoolStraw

+0

Siva의 링크는 제가하는 것과 거의 똑같습니다. 변수를 채우는 행 수와 그것을 읽는 스크립트가 있습니다. 실패 할거야 – CoolStraw

0

우리는뿐만 아니라 스크립트 작업에 사용하기 위해 동일한 변수 '행 개수'를 사용할 수 있습니다 ... 그 변수의 범위는 패키지 수준에서 경우에만. 글로벌 변수를].

0

대부분의 경우 제어 흐름에서 스크립트를 사용하고 데이터 흐름에서 행 개수를 사용했습니다. 1) 수를 원할 경우 제어 흐름에서 데이터 흐름 작업 (행 수 활동을 수행함)을 만듭니다. 2) 그런 다음 스크립트를 아래로 드래그하고 행 개수를 사용하십시오.

여기에 같은 예가 나와 있습니다. http://www.c-sharpcorner.com/uploadfile/muralidharan.d/how-to-use-rowcount-in-ssis/

관련 문제