문제

소수점 (20,0) 데이터 유형을 반환하는 SQL이 있습니다. SSI에는 Foreach 루프가있는 패키지가 있습니다. 내 변수 매핑에서 어떤 유형의 변수를 매핑합니까? int32, int64, double을 시도했지만 여전히 변수에 할당되는 값의 유형 "user :: iid"오류가 발생합니다.

도움이 되었습니까?

해결책

SSIS 변수 설계자는 제 경우에는 소수점 또는 숫자 데이터 유형을 표시하여 소수점 (18,2) 값을 배치 할 수 있도록 선택하지 않았습니다.

변수를 객체로 변경하고 저장된 1 개의 Proc의 결과 세트에서 소수점 (18,2) 값을 읽을 수 있었고, 유형의 돈을 두 번째 sp로 매개 변수로 전달할 수있었습니다.

따라서 변수 목록에서 자신에게 맞는 유형을 찾을 수 없다면 "객체"를 사용합니다.

다른 팁

아직 10 진수를 시도 했습니까?

SSIS에는 10 진수 및 숫자 유형이 있습니다. 당신은 이것들 중 하나를 사용할 수 있으며 그것을 통과 할 수 있습니다 (아마도 연합에서는 모두와 동일한 정밀도와 규모가 있는지 확인해야합니다).

데이터 유형에 대한 자세한 내용을 참조하십시오 여기.

.net Decimal에는 방법이 있습니다 Decimal.toint64 (), 십진법 32 () 등.

부유물이나 소수점이 나의 추천이 될 것입니다.

SQL 10 진수 (20,0)의 정밀도는 20 바이트의 저장 장치에 해당합니다. .NET Decimal은 16 바이트이며 작동해야합니다.

INT64 패키지 변수에 넣기 전에 SQL 데이터 유형을 Int64로 변환해야합니다.

출력 매개 변수로 어떻게 얻고 있습니까?

데이터 흐름에서는 분명히 소수점/숫자로 읽은 다음 데이터 변환 구성 요소에서 int64로 변환합니다.

실행 SQL 명령 작업에서 출력 매개 변수를 직접 매핑하려는 경우 임시 객체 패키지 변수를 사용한 다음 스크립트 작업에서 실제 int64 패키지 변수로 변환해야 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top