Обнаружение неполных строк в SSIS

Ситуация. В строке с разделителями табуляции из исходного файла неструктурированного файла отсутствуют столбцы в конце строки. Строки разделяются {CR}{LF} в диспетчере соединений с плоскими файлами, а последний столбец также разделяется {CR}{LF}. Все остальные столбцы разделяются символом Tab {t}. SSIS импортирует строку.

Пример:

Столбец{CR}{LF}4_ Столбец{CR}{LF}5_ СтолбецTab {t}6_ Столбец{t}7_

123{t} 123{t} 123{t} 123{CR}{LF}

123{t} 123{CR}{LF}

123{t} 123{t} 123{{t} 123{CR}{LF}

123{t} 123{t} {t} {CR}{LF}

123{t} 123{t} 123{t} 123{CR}{LF}

Проблема. Неполная строка, в которой остальные столбцы не разделены табуляцией (см. строку 2 выше), рассматривает следующую строку как часть текущей строки, в то время как строка, содержащая пустые столбцы, разделенные табуляцией (см. строку 4 выше) нет.

Желаемый вывод: требуется сигнал об ошибке, чтобы указать неполную строку.

Каков наилучший способ проверки частичных строк в середине файла?


person kahless364    schedule 13.11.2012    source источник


Ответы (1)


Похоже, что предварительно денали (2012) SSIS дает сбой, если отсутствует столбец при синтаксическом анализе. В версии 2012 это исправлено путем постоянной проверки разделителя строк.

См.: http://blogs.msdn.com/b/mattm/archive/2011/07/17/flat-file-source-changes-in-denali.aspx

Обходные пути для этой проблемы в службах SSIS до 2012 года включают в себя написание собственного синтаксического анализатора (это то, что мы решили сделать), преобразование данных перед их синтаксическим анализом или использование источника неструктурированных файлов только для анализа строк.

person kahless364    schedule 13.11.2012