Предполагам, че се опитвате да импортирате това с помощта на Excel Source в диалоговия прозорец на 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
)ключ на регистъра.
Можете да видите повече информация на тези две връзки:
- http://waxtadpole.wordpress.com/2008/04 /28/здравей-свят/
- http://technet.microsoft.com/en-us/ библиотека/ms141683.aspx
За по-нататъшно обяснение, SSIS създава 3 обекта зад кулисите на съветника, обект на източник на данни в Excel, целеви обект на SQL таблица и оператор на поток от данни между тях. Изходният обект на Excel дефинира изходните данни и съществува независимо от другите два обекта. Така че, когато се създаде, извадката, която описах, е направена и размерът на изходната колона е зададен. Така че докато операторът на потока от данни се изпълни и се опита да изтегли данните от excel, за да ги постави във вашата таблица, той вече разглежда източник на данни, който е ограничен до 255 знака.