Как преобразовать недопустимые записи из файла для поля даты в NULL при заполнении столбца таблицы? - PullRequest
0 голосов
/ 22 января 2019

Я новичок в SSIS и работаю над заданием, в котором я читаю некоторые столбцы из файла csv и заполняю их в таблицу SQL Server 2008 с помощью SSIS.В файле есть столбец для поля даты.Если в столбце есть какое-либо значение, отличное от допустимой даты в формате yyyy-MM-dd, мне нужно изменить его на NULL и заполнить его в таблице сервера SQL.Может кто-нибудь помочь?В настоящее время файл имеет "-" для некоторых записей и пустой для некоторых записей.Я вижу, что я могу использовать троичный оператор с?и: так же, как Java, но я не уверен, как использовать его, если файл имеет недопустимое значение, чем фактическая дата.

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 16 февраля 2019

Этого можно добиться с помощью компонента Script:

Добавьте компонент сценария, чтобы проверить правильность значения, и добавьте столбец вывода типа, т.е. OutDateColumn, используйте аналогичный код (VB.NET)

IF Not Row.DateColumn_IsNULL Then

dim dtDate as DateTime

    If DateTime.TryParseExact(Row.DateColumn,"yyyyMMdd",System.Globalization.InvariantCulture,System.Globalization.DateTimeStyles.None  , dtDate ) Then

        Row.outDateColumn = dtDate.ToString("yyyy-MM-dd")

    Else

        Row.outDateColumn_IsNull = True

    End If


Else

    Row.outDateColumn_IsNull = True

End If

Более подробный ответ вы можете получить, перейдя по ссылке ниже:

...