Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Openrowset и длина полей  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1052
Насколько я понимаю при загрузке данных из excel с использованием openrowset, для определения типа и длины поля используется только первые 8 строк. Тип у меня определяется нормально, а вот с длинной траблы, т.к. в начале мало текста и длина оперделяется как varchar(255), а дальше встречаются строки с большим кол-вом текста. Использую:

SELECT * INTO BufXLImport FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\Sources\import\files\CFM Group W1 Final Results for control panel production 14 09 12.xlsx;HDR=yes;IMEX=1','SELECT * FROM [FFMDetails$]')

Есть ли другой способ указать sql server'у, что надо анализировать все данные при создании таблицы?
21 сен 12, 13:51    [13202135]     Ответить | Цитировать Сообщить модератору
 Re: Openrowset и длина полей  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2995
как-то так

Truncated text. When the driver determines that an Excel column contains text data, the driver selects the data type (string or memo) based on the longest value that it samples. If the driver does not discover any values longer than 255 characters in the rows that it samples, it treats the column as a 255-character string column instead of a memo column. Therefore, values longer than 255 characters may be truncated. To import data from a memo column without truncation, you must make sure that the memo column in at least one of the sampled rows contains a value longer than 255 characters, or you must increase the number of rows sampled by the driver to include such a row. You can increase the number of rows sampled by increasing the value of TypeGuessRows under the

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel]
21 сен 12, 14:53    [13202730]     Ответить | Цитировать Сообщить модератору
 Re: Openrowset и длина полей  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1052
TypeGuessRows я уже поменяла на 0 по пути Hkey_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRows, т.к. у меня на компе стоит 32bit. Перестартанула sql server, без изменений. Правда комп не перегружала, надо наверное попробовать.
21 сен 12, 15:12    [13202897]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить