Импорт файла с разделителями табуляции в службах SSIS с одним полем длиной более 255 символов - PullRequest
2 голосов
/ 13 января 2012

Я импортирую файл с разделителями табуляции и получаю эту ошибку.

Ошибка: 0xC02020A1 в задаче 3 - Загрузка данных для базовых данных, источник плоских файлов [14]: преобразование данных не выполнено.Преобразование данных для столбца «Столбец 85» вернуло значение состояния 4 и текст состояния «Текст был усечен или один или несколько символов не совпадали на целевой кодовой странице.».

Ошибка: 0xC020902A в задаче 3 - ДанныеЗагрузка для базовых данных, источник плоских файлов [14]: «выходной столбец« Столбец 85 »(448)» не выполнен, поскольку произошло усечение, а расположение строки усечения в «выходном столбце« Столбец 85 »(448)» указывает на сбой при усечении,Произошла ошибка усечения указанного объекта указанного компонента.Ошибка: 0xC0202092 в задаче 3 - загрузка данных для базовых данных, источник плоских файлов [14]: ошибка при обработке файла «C: \ Metrics \ report-quoteCoreData.csv» в строке данных 540. Ошибка: 0xC0047038 в задаче 3 -Загрузка данных для базовых данных котировки, SSIS. Трубопровод: код ошибки SSIS DTS_E_PRIMEOUTPUTFAILED.Метод PrimeOutput для компонента «Источник плоского файла» (14) возвратил код ошибки 0xC0202092.Компонент возвратил код ошибки, когда механизм конвейера вызвал PrimeOutput ().Значение кода ошибки определяется компонентом, но ошибка является фатальной, и конвейер перестал выполняться.До этого могут быть сообщения об ошибках с более

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

К сожалению, я получаю

Column A ( customer ) Column B ( Location ) Column C ( should be Y or N )
Jimmy                        New York               ssssss  ( instead of Y ) 

В этой строке у меня есть более раннее поле, которое превышает 255 символов и вызывает ошибку в SSIS выше.Если я скажу игнорировать ошибку, я получу неверные данные для этой строки.«Ssss ....» - это поле, в котором оно превышает 255 символов.

Какое здесь решение?

1 Ответ

6 голосов
/ 13 января 2012

В вашем Диспетчере соединений с плоскими файлами вам необходимо настроить свойство OutputColumnWidth каждого столбца, которого недостаточно для хранения входящих значений.В вашем примере Column 85 в настоящее время определено в 255 символов, поэтому увеличьте его до разумного значения.Цель состоит в том, чтобы сделать это значение достаточно большим, чтобы охватить входящие данные, но не настолько большим, чтобы вы теряли место в памяти.

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

enter image description here

Я видел ситуации, когда метаданные неавтоматически обновлять после определенных типов преобразований (Union All я смотрю на вас).В качестве проверки работоспособности дважды щелкните по соединителю, непосредственно предшествующему пункту назначения (возможно, пункт назначения OLE DB).Перейдите на вкладку «Метаданные» и убедитесь, что Column 85 равно 500 или любому другому значению, которое вы указали.Если это не так, то вы заставите пройти обратно по цепочке, чтобы выяснить, где она застряла.Самое простое решение обычно состоит в том, чтобы удалить тревожное преобразование и повторно добавить его.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...