2011-03-07 5 views
1

이것은 간단한 문제이지만 2 개의 열을 새 출력 열로 결합하려고 시도했지만 그 행운은 없었습니다. 때마다 '개체 참조가 개체의 인스턴스로 설정되지 않습니다.' 도움을SSIS 스크립트 구성 요소에 값 지정 새 출력 열

Imports System 
Imports System.Data 
Imports System.Math 
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper 
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper 

Public Class ScriptMain 
    Inherits UserComponent 

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) 
     ' 
     ' Add your code here 
     ' 
     Dim tmpStr As String 
     tmpStr = "" 
     If Not IsNumeric(Row.addrmap.ToString) Then 
      tmpStr = Row.addrmap.ToString.Substring(Row.addrmap.ToString.Length - 2, 1) 
      tmpStr = Row.addrmap.ToString.Remove(Row.addrmap.ToString.Length - 2, 1).PadLeft(3, CChar("0")) & " " & tmpStr.PadLeft(3, CChar("0")) & " " & Row.addrpar.ToString 

     Else 
      tmpStr = Row.addrmap.ToString.PadLeft(3, CChar("0")) & " " & "000 " & Row.addrpar.ToString 
     End If 
     Row.addrMapPar = tmpStr 
    End Sub 

End Class 

감사 : 오류

여기

내 코드입니다!

답변

4

문제점을 파악했습니다. 데이터에서 NULLS와 관련이 있습니다. 나는 데이터를 제공하지 않았고, 파싱을 통해 알 수없는 몇 가지 NULL이 있음을 알았습니다.

를 해결하기 위해, I 사용 :

If Row.addrmap_IsNull = False and Row.addrpar_IsNull = False Then 
... 
End If 
+1

좋은 찾기, 답변을 게시 주셔서 감사합니다. – grapefruitmoon

3

스크립트 구성 요소 태스크의 입력 및 출력 속성 창에 새 출력 열을 추가 했습니까? enter image description here

+0

은 예, addrMapPar 필드만을 선택 입력 열로서 addrmap addrpar 및 필드 출력 컬럼으로 설정된다. – JFV

+0

게시 한 내용이 정상적으로 보입니다. 오류의 원인이 될 수있는 다른 코드가 있습니까? 데이터 유형과 입출력 이름은 모두 정확합니까? – grapefruitmoon

+0

유일한 다른 코드 (폭탄도)는 다른 테이블의 데이터로 동일한 일을합니다. 입력/출력 이름과 데이터 유형이 정확해야합니다. 출력 열이 입력 열이 아니라는 것이 문제 일 수 있습니까? 또는 Output0_ProcessOutputRow 함수가 누락 되었습니까? – JFV

관련 문제