Текст был усечен или один или несколько символов не совпадали в целевой кодовой странице ole db source с назначением плоского файла

Я экспортирую вывод таблицы в файл CSV. Я делаю это с помощью пакета служб SSIS, который имеет источник OLE DB и назначение плоских файлов. Я получаю следующие ошибки.

[Назначение плоского файла [2]] Ошибка: преобразование данных не выполнено. Преобразование данных для столбца "Адрес" вернуло значение состояния 4 и текст состояния "Текст был усечен или один или несколько символов не соответствовали целевой кодовой странице".

[Назначение плоского файла [2]] Ошибка: невозможно скопировать или преобразовать данные плоского файла для столбца "Адрес".

Ошибка [SSIS.Pipeline]: Код ошибки SSIS DTS_E_PROCESSINPUTFAILED. Метод ProcessInput для компонента "Назначение плоского файла" (2) завершился ошибкой с кодом ошибки 0xC02020A0 при обработке ввода "Вход назначения плоского файла" (6). Идентифицированный компонент возвратил ошибку из метода ProcessInput. Ошибка относится только к компоненту, но она является фатальной и приведет к остановке выполнения задачи "Поток данных". Перед этим могут быть сообщения об ошибках с дополнительной информацией о сбое.

[Источник OLE DB [9]] Ошибка: Попытка добавить строку в буфер задач потока данных не удалась с кодом ошибки 0xC0047020.

Ошибка [SSIS.Pipeline]: Код ошибки SSIS DTS_E_PRIMEOUTPUTFAILED. Метод PrimeOutput в источнике OLE DB возвратил код ошибки 0xC02020C4. Компонент возвратил код ошибки, когда механизм конвейера вызвал PrimeOutput(). Значение кода ошибки определяется компонентом, но ошибка является фатальной, и конвейер прекратил выполнение. Перед этим могут быть сообщения об ошибках с дополнительной информацией о сбое.

Может кто-нибудь, пожалуйста, посоветуйте.

2 ответа

Выходной столбец для адреса указан как меньший, чем исходный столбец таблицы.

Смотрите это SO: преобразование данных SSIS не удалось

Резюме:

(1) Щелкните правой кнопкой мыши на источнике плоских файлов и выберите "Показать расширенный редактор". Перейдите на вкладку "Свойства ввода и вывода", разверните "Вывод источника плоских файлов" и выберите "Внешние столбцы".

(2) Выберите столбец "Адрес" и в правой части увеличьте длину до размера, равного столбцу в исходной таблице.

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

@user7396598

Спасибо, что указали мне в правильном направлении. Поэтому я провел сравнение, и записи, похоже, вставляются в одном и том же порядке только до момента, после которого они не совпадают. Я мог бы захватить плохие данные. выполнив следующее: выберите * из таблицы, где address!= cast(address as varchar(1000)), когда я удалил неверные данные, с которыми работал мой SSIS.

Теперь мне нужно выяснить, как преобразовать неверные данные в приемлемый формат для CSV.

Ссылка - /questions/21654195/kak-najti-simvolyi-unicode-ne-ascii-v-pole-ntext-v-tablitse-sql-server-2005/21654213#21654213

Так что у меня была похожая проблема плохих данных в одном из моих столбцов, вызвавшая эту ошибку даже после увеличения размера выходного столбца. В моем случае я решил эту проблему, заменив неверные данные в столбцах с помощью replace функция.

Я экспортировал данные, написав запрос, и в этом запросе вместо "select *" я написал все имена столбцов и использовал replace функция на столбцах, которые вызывали проблемы. Я заменил все символы, которые потенциально могут привести к усечению, например запятую, трубу, табуляцию и т. Д., На пустое место

Другие вопросы по тегам