2015-10-01 2 views
0

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

Я не могу понять, почему это происходит. Кто-нибудь еще когда-либо испытывал это?

+0

Является ли проблема воспроизводимой, если вы попытаетесь повторно импортировать тот же файл? Если да, можете ли вы уменьшить файл до наименьшего возможного файла, который будет воспроизводить проблему? –

+1

Есть ли дополнительные «|» в данных где-нибудь? Я видел аналогичные результаты, когда SSIS видит дополнительный разделитель, а столбцы выходят из синхронизации. Проверьте строку, которая вызывает проблему в файле *, и строку перед ней * тщательно. По моим данным, данные клиента были разделены на трубы с частью адреса, что-то вроде «12 Chape | Road». –

+0

@TabAlleman да могу, когда я смотрю на Notepad ++, я не вижу никаких странных символов или дополнительных труб. – KillerSmalls

ответ

0

У меня были похожие проблемы. В итоге я удалил любые символы \ n или \ r из строковых данных после того, как он уже попал в поток данных, используя либо производный столбец, либо пользовательский компонент скрипта. Это поставило проблему для меня. Это помогает включить просмотрщик данных, чтобы увидеть, как выглядят данные при отладке.

+0

Да, это то, что я сделал, но я действительно хочу знать, почему это происходит! – KillerSmalls

0

У меня были такие вопросы, как это раньше, и обнаружил, что в некоторых случаях SSIS может распознавать только вкладки, символы новой строки, & возврат каретки, используя шестнадцатеричный формат:

x0009 - tab 
x000A - feed 
x000D - return 

Попробуйте использовать что-то вроде этого в производном столбце:

(DT_STR,50,1252)TRIM(LOWER(REPLACE(REPLACE(REPLACE(*{your_column}*,"\x0009",""),"\x000A",""),"\x000D","")))