質問

SSISを使用してExcelシートからSQL Server 2005にデータをインポートします。データには、同じ列に以前の空ではないセルの値を持つデータを含むいくつかの列が含まれています。

2005 | 15 | Something1
     | 12 | Something2
     | 14 | Something3
2006 | 10 | Something4
     |  2 | Something5
     | 18 | Something6
     | 15 | Something7

2005年と2006年に記入する必要がありますが、取得できるのはnullだけです。 このフィールドの値がnullでない場合は変数に入れて、それを使用してその後に続くnull値を置換できますか?

役に立ちましたか?

解決

データフローでスクリプトコンポーネントを使用し、変数を使用して最後の既知の値を保持する各行を調べる必要があります。

更新:コードは次のとおりです。これはSSIS 2008のVBで行ったため、編集が必要な場合があります(たとえば、変数の代わりにDts.Variables [" User :: LastYear"]。Value.ToInt32()を使用する必要がある場合があります。 LastYear--頭の上から思い出せない)

Dim LastYear As Integer

Public Overrides Sub PreExecute()
    MyBase.PreExecute()
    LastYear = 0
End Sub

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    If Row.year_IsNull Then
        Row.year = LastYear
    Else
        LastYear = Row.year
    End If
End Sub

うまくいけば、これは助けになります!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top