Я полагаю, вы пытаетесь импортировать это, используя источник Excel в диалоговом окне служб SSIS?
Если это так, проблема, вероятно, заключается в том, что SSIS производит выборку некоторого числа строк в начале вашей электронной таблицы при создании источника Excel. Если в столбце [ShortDescription] он не заметит ничего слишком большого, по умолчанию будет использоваться текстовый столбец из 255 символов.
Таким образом, чтобы импортировать данные из столбца, который содержит строки с большими объемами данных без усечения, есть два варианта:
- Необходимо убедиться, что в столбце [ShortDescription] хотя бы в одной из строк выборки содержится значение, превышающее 255 символов. Один из способов сделать это - использовать функцию REPT (), например, = REPT ('z', 4000), который создаст строку из 4000 букв "z".
- Вы должны увеличить число строк, отобранных драйвером Jet Excel, чтобы включить такую строку. Вы можете увеличить количество выбранных строк, увеличив значение TypeGuessRows до
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
(если у вашей системы x64, то при HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\Microsoft\Jet\4.0\Engines\Excel
)
ключ реестра.
Вы можете увидеть больше информации по этим двум ссылкам:
Для дальнейшего объяснения SSIS создает 3 объекта за кулисами мастера, объект источника данных Excel, целевой объект таблицы SQL и оператор потока данных между ними. Исходный объект Excel определяет исходные данные и существует независимо от двух других объектов. Поэтому, когда он создан, описанная мной выборка завершена, и размер исходного столбца установлен. Таким образом, к тому времени, когда оператор потока данных выполняет и пытается извлечь данные из Excel для помещения в вашу таблицу, он уже ищет источник данных, который был ограничен 255 символами.