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

Откуда:
Сообщений: 58
День добрый.
Загружаю эксель через мастер импорта.
Этот мастер присваивает формат поля таблицы (куда будет загружаться столбец экселя) автоматически, но его можно поменять.

Так вот есть пара столбцов где данные могут быть как числом, так и текстом. Мастер предложил использовать nvarchar(255).
Запустил загрузку: тексты загрузились, а вместо чисел null.

Отсортировал этот столбец в экселе по возрастающей, мастер предложил использовать float. Логично, что теперь цифры загрузились, а вместо текста null.

На форуме искал, но такой вопрос не нашел.

Как быть?

Заранее спасибо.

P.S. Ms SQL 2008 R2, импорт через мастер из эксель 97-2003
5 авг 15, 16:37    [17979706]     Ответить | Цитировать Сообщить модератору
 Re: Мастер импорта  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
Если,

грузите всё как текст, а потом преобразовывайте в число (при работе с загруженным в SQL). в строках могут быть неконвертируемые значения, да и эксель любит сюрпизы преподносить
5 авг 15, 16:42    [17979751]     Ответить | Цитировать Сообщить модератору
 Re: Мастер импорта  [new]
Glory
Member

Откуда:
Сообщений: 104760
Если
Как быть?

сделать таки у всех ячеек в Excel-е одинаковый тип данных

ЗЫ
Тип данных - это не формат отображения
5 авг 15, 16:49    [17979798]     Ответить | Цитировать Сообщить модератору
 Re: Мастер импорта  [new]
Если
Member

Откуда:
Сообщений: 58
StarikNavy,

Спасибо за ответ, но с текстом тоже пробовал. Грузит только текст или цифры примерно как : "158/164". А "чистые" цифры не грузит :(
5 авг 15, 16:53    [17979820]     Ответить | Цитировать Сообщить модератору
 Re: Мастер импорта  [new]
Если
Member

Откуда:
Сообщений: 58
Glory,
спасибо за ответ. Что-то я немного запутался.

Формат отображения это "Общий", "Числовой"...?

А тип данных это что-то другое? Думал, что я знаю эксель

Покопал, здесь пишут, что через формат отображения можно менять тип данных.

На всякий случай в экселе поставил формат отображения "текст", sql опять загрузил только текст (тоже самое и с форматом "общий").

Заранее спасибо.
5 авг 15, 17:10    [17979923]     Ответить | Цитировать Сообщить модератору
 Re: Мастер импорта  [new]
Glory
Member

Откуда:
Сообщений: 104760
Если
А тип данных это что-то другое? Думал, что я знаю эксель

https://msdn.microsoft.com/en-us/library/ms712640(v=vs.85).aspx

Если
Покопал, здесь пишут, что через формат отображения можно менять тип данных.

Там пишут неверно

Если
На всякий случай в экселе поставил формат отображения "текст", sql опять загрузил только текст (тоже самое и с форматом "общий").

Символ ` на 100% гарантирует текстовый тип данных
5 авг 15, 18:07    [17980225]     Ответить | Цитировать Сообщить модератору
 Re: Мастер импорта  [new]
Alexander2
Member

Откуда: Calgary
Сообщений: 1157
To Если,

Попробовать в оригинале эксел файла в трабл-поле конкатенировать слово, и тогда эта колонка будет восприниматься тектсовой при импорте.
А потом на стороне sql server ручками проапдейтить это поле, set fieldXXX=Replace(fieldXXX,'mytext','')
Потом попробовать изменить в скрипте запроса формат поля и посмотреть конвертирует ли в Numeric.
Потом отсоритрировать по этой колонке и посмотреть какие косяки в данных все же остались и исправить.
6 авг 15, 00:39    [17981512]     Ответить | Цитировать Сообщить модератору
 Re: Мастер импорта  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Если,

Вот ещё способ, читать прямо из файла:
https://msdn.microsoft.com/ru-ru/library/office/hh180830(v=office.14).aspx
6 авг 15, 02:28    [17981585]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить