Как сохранить нулевые значения в месте назначения плоского файла в пакете ssis
Я создал пакет ssis. в задаче потока данных, я передаю данные из источника в плоский файл назначения. Я хочу сохранить нулевые значения в плоский файл, но он становится пустым.
3 ответа
@H.Fadlallah предоставил пример того, как обрабатывать NULLS при чтении из плоского файла. Я понимаю, что вы хотите записать NULL в плоский файл. Как было объяснено, у плоских файлов нет понятия NULL. В отличие от SQL они не имеют тип данных. Все это строка. NULL в плоском файле равен пустой строке.
Из вашего заявления
Я хочу сохранить нулевые значения в плоский файл, но он становится пустым.
Я могу только предположить, что вы хотите напечатать текст "NULL" в плоский файл. Для этого вы можете использовать компонент Производный столбец. Поместите его между источником OLE DB и местом назначения плоского файла. Внутри компонента "Производный столбец" определите нулевые значения и приведите их из истинного значения NULL в строковое значение "NULL", используя следующее троичное выражение.
ISNULL([MyColumn]) ? "NULL" : [MyColumn]
Надеюсь это поможет. Если вам нужно что-то еще, пожалуйста, уточните свой вопрос.
Используйте преобразование производного столбца в службах SSIS, попробуйте следующий код. замещать [ColumnName]
с вашей колонкой.
ISNULL([ColumnName]) ? "NULL" : [ColumnName]
В плоских файлах нет разницы между нулем и пробелами. поэтому, если плоский файл читается с использованием приложения или другого пакета ssis, вы должны проверить, что значение не является пустым или пустым, используя такие функции, как String.IsNullOrEmpty()
а также IsNull()
IE:
В компоненте скрипта вы можете проверить значение столбца следующим образом:
If Not Row.inCol_IsNull AndAlso _
Not String.IsNullOrEmpty(Row.InCol) Then
'Do SomeThing
Row.OutCol = Row.inCol
Else
Row.OutCol_IsNull = True
En If
ИЛИ ЖЕ
при использовании приложения
If not strValue is nothing andAlso _
not string.IsNullOrEmpty(strvalue) then
' do something
end If