#sql-server #ssis
#sql-server #ssis
Вопрос:
Я создаю пакет SSIS для импорта файла CSV в таблицу SQL Server. В файле CSV есть столбец даты, и значение будет отсутствовать в некоторых строках. Отсутствующее значение представлено двумя последовательными запятыми (например, val1,,va3). Когда значение отсутствует, я хочу вставить текущую дату и время в UTC.
В рамках преобразования столбца, которое я использую:
REPLACENULL(DateCreated, GetUtcDate())
Это не работает; вместо этого вставляется значение 0001-01-01 00:00:00.0000000.
Подробности: таблица SQL Server ожидает формат даты: Datetime2(7)
Диспетчер соединений с плоским файлом использует временную метку базы данных с точностью [DT_DBTIMESTAMP2]
Как я могу заменить отсутствующие значения текущим значением даты и времени UTC?
Комментарии:
1. Вы пытались установить значение по умолчанию для столбца?
Ответ №1:
Столбец может быть не нулевым, поэтому REPLACENULL не запускается
Поведение источника плоского файла по умолчанию заключается в замене пустых значений столбцов пустой строкой или пустой датой, дважды проверьте свой источник плоского файла и убедитесь, что вы импортируете пустые столбцы как нули.
Затем REPLACENULL должен зарегистрировать столбец как НУЛЕВОЙ и заменить его на GetUtcDate()