Как импортировать нулевую строку как нулевую метку в файлы csv с помощью пакета ssis

Как импортировать нулевую строку как нулевую метку в файлы csv с помощью пакета ssis

csv file have values : 
id |name |deptno | sal
1  |a    |NULL   |NULL
2  |b    |NULL    |NULL
3  |c    |NULL    |NULL
NULL|d   |10      |NULL

тип файла: csv значения, разделенные запятыми введите здесь описание изображения

[![enter code here][2]][2]


Target table emp : 
id |name |deptno | sal
1  |a    |NULL   |NULL
2  |b    |NULL    |NULL
3  |c    |NULL    |NULL
NULL|d   |10      |NULL

Здесь я не получаю нулевые значения БД и получаю строковые нулевые значения введите здесь описание изображения введите здесь описание изображения

как решить проблему с нулевыми значениями на стороне пакета ssis


person harnithu    schedule 01.05.2020    source источник


Ответы (1)


У меня нет под рукой установки SSDT, поэтому я не могу добавить ни одного скриншота для этого, и выражения будут просто «близкими». Скорее всего, для их работы потребуется некоторая настройка.

В вашем Data Flow Task между источником и местом назначения добавьте Derived Column Transformation. Добавьте два новых столбца. Назовите их чем-то похожим на два столбца, с которыми у вас возникли проблемы; скажите dept_no_clean и sal_clean. Оставьте для них значение <Add as new column>.

Для Expression вы захотите указать SSIS преобразовать строковое значение 'NULL' в фактический NULL, в противном случае просто передайте числовое значение (я предполагаю, что здесь есть типы данных. Вы захотите установить их такими, какие они есть). правильно для ваших данных. Я буду использовать INTEGER для dept_no и десятичную дробь для sal.):

sal_clean      sal="NULL" ? NULL(DT_NUMERIC, 18, 2) : (DT_NUMERIC, 18, 2)sal

dept_no_clean  dept_no="NULL" ? NULL(DT_I4) : (DT_I4)dept_no

Выражение является IF/THEN/ELSE условным. И, опять же, может быть не на 100% правильно, как написано.

Наконец, отредактируйте пункт назначения. Сопоставьте два новых производных столбца с соответствующими столбцами в целевой таблице.

person Eric Brandt    schedule 01.05.2020