Как изменить столбец varchar 255 по умолчанию при импорте данных из Excel на Sql Server с помощью мастера импорта экспорта? - PullRequest
8 голосов
/ 15 сентября 2011

Я пытаюсь импортировать данные из Excel на Sql Server с помощью мастера импорта.Все выглядит хорошо на первых шагах.Мастер может прочитать файл Excel и правильно определить столбцы.Но на последнем шаге, когда процесс действительно выполняется, он не может выдать следующие ошибки:

Ошибка 0xc020901c: поток данных Задача 1. Произошла ошибка с выходным столбцом «AlternateName» (24) на выходе«Исходный код Excel» (9).Возвращалось состояние столбца: «Текст был усечен или один или несколько символов не совпадали на целевой кодовой странице».(Мастер импорта и экспорта SQL Server)

Ошибка 0xc020902a: Поток данных Задача 1. «Выходной столбец« AlternateName »(24)» не выполнен, поскольку произошло усечение, и расположение строки усечения в «выходном столбце« AlternateName »(24) "указывает на сбой при усечении.Произошла ошибка усечения указанного объекта указанного компонента.(Мастер импорта и экспорта SQL Server)

Ошибка 0xc0047038: Поток данных Задача 1: Код ошибки служб SSIS DTS_E_PRIMEOUTPUTFAILED.Метод PrimeOutput для компонента «Источник - Лист1 $» (1) возвратил код ошибки 0xC020902A.Компонент возвратил код ошибки, когда механизм конвейера вызвал PrimeOutput ().Значение кода ошибки определяется компонентом, но ошибка является фатальной, и конвейер перестал выполняться.Перед этим могут быть сообщения об ошибках с дополнительной информацией о сбое.(Мастер импорта и экспорта SQL Server)

Максимальный размер данных столбца AlternateName составляет 658 символов.Таблица назначения имеет столбец AlternateName, определенный как varchar (1000).Поэтому я не был уверен, почему я получаю эту ошибку.Но потом я заметил это

enter image description here

У меня есть догадка, что это может быть причиной проблемы.Но тогда как мне изменить столбец Source, определенный как varchar 255?

Ответы [ 2 ]

8 голосов
/ 15 сентября 2011

Возможно, вам потребуется написать собственный запрос в мастере и привести столбцы как varchar (1000) - я не уверен на 100%, что это сработает. В противном случае, насколько большой лист? Мастер только «просматривает» столько строк (по умолчанию это IIRC 10000, это параметр реестра), чтобы определить тип данных и ширину. Пересортируйте файл excel, чтобы самое длинное значение AlternateName находилось вверху.

3 голосов
/ 22 января 2016

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

После восстановления строк Мастер импорта экспорта обнаруживает большую длину и меняет тип данных столбца источника на LongText.

enter image description here

...