Importazione di dati da Excel in SSIS, valori vuoti
Domanda
Sto usando SSIS per importare dati da fogli Excel in SQL Server 2005, i dati contengono alcune colonne con dati che dovrebbero avere il valore della precedente cella non vuota nella stessa colonna, è simile al seguente:
2005 | 15 | Something1
| 12 | Something2
| 14 | Something3
2006 | 10 | Something4
| 2 | Something5
| 18 | Something6
| 15 | Something7
Dovrebbe compilare il 2005 e il 2006, ma tutto ciò che ho potuto ottenere è null. Posso inserire il valore di questo campo in una variabile se non è null e usarlo per sostituire i valori null che lo seguono?
Soluzione
Dovrai utilizzare un componente script nel flusso di dati e passare attraverso ogni riga, usando una variabile per contenere l'ultimo valore noto.
Aggiornamento: ecco il codice. L'ho fatto in VB in SSIS 2008, quindi potrebbe esserci qualche modifica che devi fare (ad esempio, potresti dover usare Dts.Variables [" User :: LastYear "]. Value.ToInt32 () invece di Variabili. LastYear - Non ricordo la parte superiore della mia testa):
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
Speriamo che questo aiuti!