Ответ 1
Вы также можете проверить параметр "Сохранять значения Null" как на исходном, так и на целевом подключении (если есть)
Я извлекаю данные из excel в ssis
. Один из столбцов excel содержит значения blank
. поэтому мне нужно заменить значение blank
значением null, иначе мой пакет будет терпеть неудачу.
Любые предложения?
Вы также можете проверить параметр "Сохранять значения Null" как на исходном, так и на целевом подключении (если есть)
В DataFlow используется компонент DerivedColumn.
Замените столбец и в выражении поместите эту строку кода
ColumnName == "" ? NULL(DT_WSTR,50) : ColumnName
Он обязательно вернет null, если столбец пуст
Вы пробовали что-то вроде (в предположении, что тип данных имеет строку /varchar ):
LEN(TRIM([ColumnName]))==0 ? NULL(DT_WSTR, 10) : [ColumnName]
У меня был похожий экземпляр, где я хотел заменить строку в столбце даты на NULL, и я использовал следующий код:
LEN (your_data) < 2? NULL (DT_WSTR, 50): your_datap >
В этом случае строка имела длину всего 1. Затем я использовал преобразование преобразования данных, чтобы получить его к типу dt_dbtimestamp.
Надеюсь, что это поможет!
Исправить эту проблему:::
Источник и адресат должны быть отмечены с помощью опции allow null values, и она будет работать.
Вы должны использовать компонент Derived Column и условное выражение. Поскольку это условный оператор, типы данных должны быть одинаковыми для создания логического результата.
Попробуйте использовать это:
ColumnName == (DT_DATE)"" ? NULL(DT_DATE) : ColumnName