2009-05-02 70 views
2

我使用SSIS將數據從Excel工作表導入到SQL Server 2005中,數據包含一些數據列,其數據應該具有前一個非空單元格的值列,它看起來像這樣:從SSIS中的Excel導入數據,空值

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

它應該填寫2005年和2006年,但我所能得到的只是空值。 我可以把這個字段的值放在一個變量中,如果它不爲空,並用它來替換它後面的空值?

回答

3

您必須在數據流中使用腳本組件並遍歷每一行,並使用變量保存最後一個已知值。

更新:這是代碼。我在SSIS 2008中使用了VB,因此可能需要進行一些編輯(例如,您可能需要使用Dts.Variables [「User :: LastYear」]。Value.ToInt32()而不是Variables.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 

希望這會有所幫助!

+0

謝謝,這看起來像會起作用。 – BlueEyes 2009-05-02 20:24:11