Я создал пакет ssis. в задаче потока данных я передаю данные из oledbsource в место назначения плоского файла. Я хочу сохранить нулевые значения в плоском файле, но он становится пустым.

2
Asin 27 Ноя 2016 в 18:58

3 ответа

Лучший ответ

@ H.Fadlallah предоставил пример того, как обрабатывать NULL, считываемые из плоского файла. Я понимаю, что вы хотите записывать NULL в плоский файл. Как было объяснено, плоские файлы не имеют понятия NULL. В отличие от SQL у них нет типа данных. Все - струна. NULL в плоском файле равен пустой строке.

Из вашего заявления

Я хочу сохранить нулевые значения в плоском файле, но он становится пустым.

Я могу только предположить, что вы хотите вывести текст «NULL» в плоский файл. Для этого вы можете использовать компонент "Производный столбец". Поместите его между исходным кодом OLE DB и местом назначения плоского файла. Компонент "Производный столбец" обнаруживает нулевые значения и преобразует их из истинного значения NULL в строковое значение "NULL", используя следующее тернарное выражение.

ISNULL([MyColumn]) ? "NULL" : [MyColumn]

Надеюсь это поможет. Если вам нужно что-то еще, пожалуйста, уточните свой вопрос.

2
Troy Witthoeft 28 Ноя 2016 в 02:45

В плоских файлах нет разницы между нулевым значением и пробелами. поэтому, если плоский файл читается с помощью приложения или другого пакета ssis, вы должны проверить, не является ли значение пустым или пустым, используя такие функции, как String.IsNullOrEmpty() и IsNull()

И.Э .:

В компоненте скрипта вы можете проверить значение столбца следующим образом:

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
1
Hadi 27 Ноя 2016 в 21:00

Используйте преобразование производного столбца в SSIS. Попробуйте использовать следующий код. Замените [ColumnName] своим столбцом.

ISNULL([ColumnName]) ? "NULL" : [ColumnName]
1
Paul Roub 4 Май 2018 в 18:10