2012-07-11 2 views
2

MS SSIS에 문제가 있습니다. 데이터베이스에 자료를 다운로드하고 업로드하고 싶습니다. 나는 최선의 방법을 찾고 있는데 왜 에러가 나는지.SSIS Null 처리, 스크립트 작업

제어 흐름 (다른 작업이 호출 됨)을 사용합니다. 다운로드하는 데이터의 열에는 null이 있습니다. 이를 위해 문자열이나 정수를 사용할 수 없으며 그렇지 않으면 오류로 종료됩니다 (SQL 작업 실행). 그래서 나는 물건을 사용한다. 예 : 변수 sBorderName이 object이면 열의 데이터가 여기에옵니다.

다른 데이터베이스 테이블에 업로드하고 싶습니다. 예를 들어 콜럼에 null이있을 수도 있습니다. 데이터베이스 유형 누락이 발생하기 때문에 오브젝트 변수를 업로드 할 수 없습니다. 나는 스크립트 작업 (C#을), 나는 다음과 같은 사용으로 널의 제거하려고하면

는 : sBorderName이 sBorderNameSafe 객체 이다 나는에 아무런 힌트, 런타임 오류 문자열

if (Dts.Variables["User::sBorderName"].Value == null) 
{ 
    Dts.Variables["User::sBorderNameSafe"].Value = "NULL ERROR"; 
} 
else 
{ 
    Dts.Variables["User::sBorderNameSafe"].Value = 
     (String)Dts.Variables["User::sBorderName"].Value; 
} 

입니다 뭐가 잘못 되었 니. 이 오류는 else case에서 발생합니다. 나는 변수, 범위, 쓰기/읽기 권한 등을 두 번 확인했습니다.

도와 주시겠습니까? 이게 뭐가 잘못 되었 니? 더 좋은 아이디어가 있다면 문제를 해결하는 방법은 무엇입니까?

Sziro

UPDATE :

Dts.Events.FireWarning(14, "Display Script", "sBorderName is:" + Dts.Variables["User::sBorderName"].Value, "", 0); 

일, 그것은 "sBorderName은"표시하지 그러나

런타임 오류와 가치 종료의 모든 주조

(String)Dts.Variables["User::sBorderName"].Value 

방법 이것을 제대로 처리 할 수 ​​있습니까?

+0

귀하의 해결책이 확실하지 않습니다. 당신은 당신이 "다운로드하고 데이터베이스에 물건을 업로드해야합니다." 데이터를 SELECT 및 INSERT/UPDATE 할 필요가 있는지 또는 파일을 ftp해야하는지 명시하고 있습니까? – billinkc

+0

예, 일반 이전 선택 및 삽입. 그러나 SQL 작업을 실행하면 제어 흐름을 사용해야합니다. (따라서 데이터 흐름 부분이 아닙니다.) – Sziro

+0

이 모든 것에 데이터 흐름을 사용하지 않는 이유가 있습니까? – billinkc

답변

0
Convert.ToString(Dts.Variables("sBorderName ").Value) 

변수가 null 일 수있는 경우가 있습니다.

관련 문제