Импорт данных из Excel в SSIS, пустые значения - PullRequest
2 голосов
/ 02 мая 2009

Я использую SSIS для импорта данных из листов Excel в SQL Server 2005, данные содержат несколько столбцов с данными, которые должны иметь значение предыдущей непустой ячейки в том же столбце, это выглядит так:

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

Должно быть заполнено в 2005 и 2006 годах, но все, что я мог получить, это нули. Могу ли я поместить значение этого поля в переменную, если оно не равно нулю, и использовать его для замены нулевых значений, следующих за ним?

1 Ответ

3 голосов
/ 03 мая 2009

Вам нужно будет использовать компонент Script в потоке данных и проходить по каждой строке, используя переменную для хранения последнего известного значения.

Обновление: вот код. Я сделал это в VB в SSIS 2008, поэтому вам может потребоваться некоторое редактирование (например, вам может понадобиться использовать 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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...