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

Я пытаюсь импортировать данные из 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 для компонента " источник - Sheet1$ " (1) возвращенный код ошибки 0xC020902A. Возвращаемый компонент код сбоя, когда механизм конвейера называется PrimeOutput (). Этот значение кода сбоя определяется компонентом, но ошибка является фатальным, и конвейер перестал выполняться. Может быть ошибка сообщения, размещенные до этого с дополнительной информацией о сбое. (язык SQL Мастер импорта и экспорта сервера)

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

enter image description here

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

2 ответов


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


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

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

enter image description here