Мастеру импорта данных не нравится тип данных, который я выбираю для столбца

Есть ли у кого-нибудь еще такая же проблема, когда вы импортируете данные из файла Excel в MSSQL Server 2005, если какой-то столбец содержит в основном числовые данные, но даже если вы установите тип столбца на varchar, мастер не сможет импортировать те поля, которые не удается проанализировать как числа?


person Haoest    schedule 23.04.2009    source источник


Ответы (6)


Попробуйте это (Примечание: эти инструкции основаны на Excel 2007) ...

Следующие шаги должны заставить Excel рассматривать столбец как текст:

Откройте вашу электронную таблицу в Excel.

Выберите весь столбец, который содержит ваши «в основном числовые данные», щелкнув заголовок столбца.

Щелкните вкладку «Данные» в меню ленты.

Выберите Текст в столбцы. Это вызовет мастер преобразования текста в столбцы.

-На шаге 1: нажмите «Далее».

-На шаге 2: нажмите «Далее».

-На шаге 3: выберите «Текст» и нажмите «Готово».

Сохраните лист Excel.

Повторите импорт с помощью мастера импорта данных SQL Server 2005.

person Joe L.    schedule 23.04.2009
comment
К сожалению, у меня Excel 2002. Мне пришлось сохранить свой лист как текстовый файл с разделителями табуляции, чтобы обойти это. Это вызвало другие головные боли, но сработало после небольшого массажа. - person Haoest; 23.04.2009
comment
Я думаю, что в Excel 2002 параметр «Текст в столбцы» находится в меню «Данные». - person Joe L.; 24.04.2009
comment
Это действительно похоже на то, что это почти сработает и для меня. (Используя Excel 2007). Однако запятые удаляются из значений вроде 47100 до 47100, что неприемлемо. (Значение не является числом! Это 47 и 100, разделенные запятой). На самом деле трудно поверить, насколько это серьезная проблема и столько людей выражают разочарование по этому поводу, но на самом деле нет простого ответа. - person Funka; 05.03.2011
comment
Небольшое изменение ... Я выделил весь столбец, щелкнул правой кнопкой мыши, «Формат ячеек» - ›и выбрал« Текст »на первой вкладке. - person Ben Amada; 19.11.2014

Вам необходимо отредактировать строку подключения, которую использует SSIS. Добавьте это в конец строки «IMEX = 1;» (Без кавычек) Это говорит SSIS / jet не пытаться выяснить, что это за типы данных. Просто импортируйте их.

person Dayton Brown    schedule 12.05.2009

Вы можете попробовать изменить настройки Jet для импорта данных Excel. Вы можете заставить движок Jet взять образец всего листа при попытке определить тип столбца во время данного импорта. Измените следующий раздел реестра (предварительно сделав резервную копию) и посмотрите, не работает ли это:

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel

Or on x64

HKLM\Software\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel

Установите значение TypeGuessRows равным нулю. Это заставит Jet выполнить выборку всех строк для определения типа столбца.

person Thomas    schedule 17.03.2010
comment
Кажется, это читает каждую строку для каждого столбца. Для больших листов с большим количеством строк это может занять много времени. - person Michael Green; 15.01.2018
comment
Верно. Однако альтернативой является то, что система предполагает, что данный столбец должен быть числом или датой, на основе первых 100 или около того строк, а затем в строке 748,456 он терпит неудачу и убивает весь процесс, и вы можете начать заново. - person Thomas; 16.01.2018

Создайте новый столбец, который является апостофом + содержимое столбца, который вы хотите импортировать. Это заставит его быть строкой

= "'" & E2

person Community    schedule 16.07.2009

Добавление IMEX = 1 ДО у меня сработало.

person Charles Thunder    schedule 01.03.2013

Это лучшее решение:

  1. Щелкните Файл в меню ленты, а затем щелкните Параметры.

  2. Нажмите кнопку «Дополнительно», а затем в разделе «При вычислении этой книги» установите флажок «Установить точность как отображаемую» и нажмите кнопку «ОК».

  3. Щелкните ОК.

  4. На листе выделите ячейки, которые хотите отформатировать.

  5. На вкладке «Главная» щелкните изображение кнопки запуска диалогового окна рядом с полем «Номер».

  6. В поле Категория щелкните Число.

  7. В поле Десятичные разряды введите количество десятичных знаков, которое вы хотите отобразить.

person Marcio Lopes Cattini    schedule 12.07.2016