Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

Откуда: Оттуда
Сообщений: 42
Здравствуйте!

Подскажите, пожалуйста, как решить проблемку!
Есть Excel файл, который необходимо подгрузить на SQL Server 2008. Подгружаю следующим образом:
Insert into #table
SELECT *
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'Excel 8.0; Database=E:\ \ExcelFile.xls; IMEX=1;HDR=Yes', 'Select * from [Sheet$]')
Проблема заключается в следующем: когда ЧИСЛО, находится в ТЕКСТОВОМ формате, при подгрузке оно автоматически переделывается в экспоненциальный вид! (5.40232e+008). Как сделать так, чтобы подгружалось без всяких преобразований ?!

Спасибо за ответ ;)
31 май 10, 10:13    [8859871]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Какого типа эти проблемные поля в #table?
Небось, FLOAT?
Сделайте DEC() подходящего формата.
31 май 10, 10:28    [8859984]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

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

в таблице #table все поля текстовые!
Судя по всему, проблема возникает на этапе обращения к Excel, т.к. в случае если делать обычный Select, он уже выводит експоненту.
31 май 10, 10:42    [8860093]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

Откуда: Оттуда
Сообщений: 42
Люди, HELP!

очень нужно какое-нибудь решение!

Задача по сути очень банальна, нужно подгрузить содержимое Excel в SQL 2008 без всяких преобразований!

КАК !? ;))))
31 май 10, 13:00    [8861518]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
хз кто...
Guest
xed1000000,

поставь апостроф в начале строки
31 май 10, 13:12    [8861601]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
xed1000000
Задача по сути очень банальна, нужно подгрузить содержимое Excel в SQL 2008 без всяких преобразований!

КАК !? ;))))
Так, это
iap
Какого типа эти проблемные поля в #table?
Сделайте DEC() подходящего формата.
пробовали?
31 май 10, 13:15    [8861626]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

Откуда: Оттуда
Сообщений: 42
хз кто...,

Каким образом его туда поставить ?! ...
Вручную, не вариант ! update OPENROWSET, тоже не работает
-------------------------------------------------------------------

baracs, iap ,

что именно имеете ввиду ?!
31 май 10, 13:58    [8862011]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
xed1000000
baracs, iap ,

что именно имеете ввиду ?!
Откуда взялась таблица #table?
Выполнили CREATE TABLE #table(...);
Почему создали таблицу с полем типа FLOAT? Кто мешает сделать его типа DEC() или NUMERIC()?

Но, возможно, это не всегда поможет, раз уже OPENROWSET() возвращает плохой тип.
Однако, попытка не пытка, верно?
31 май 10, 14:21    [8862220]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Кстати говоря, в данном контексте писать SELECT * - вообще преступление! IMHO.
Надо явно перечислить поля, раз уж Вы их заранее знаете в момент создания таблицы!
31 май 10, 14:23    [8862233]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

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

Таблицу #Table взял исключительно дла примера. ( в существующей таблице все поля известны, и у всех полей стоит тип - nvarchar. Это необходимо, т.к. многие сточки из таблицы Excel действительно текстовые, соответственно установить тип поля float, int, decimal и т.д. нельзя)

Возможно кто-то знает другой способ подгрузки Excel файла ?! скажите, пожалуйста!
Обычный импорт не работает, т.к. в столбце Excel содержатся данные разных типов ( текст, число), поэтому при таком способе загружается только значения одного типа или текст или число... а другое значение заменяется на Null.

При OPENROWSET, спасает IMEX, но возникает проблема с экспонентой!

что же делать ;) ?!
31 май 10, 14:43    [8862390]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
Glory
Member

Откуда:
Сообщений: 104751
xed1000000

что же делать ;) ?!

Взять и хранить в Excel числа как числа. Или строки как строки
31 май 10, 14:47    [8862417]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

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

такой возможности нет ;).
31 май 10, 15:16    [8862630]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
Glory
Member

Откуда:
Сообщений: 104751
xed1000000
Glory,

такой возможности нет ;).

А написать скрипт с конвертацией нет желания
Так выпьем же за то, что бы наши желания всегда совпадали с нашими возможностями
31 май 10, 15:18    [8862644]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

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

Можно конечно кучу обходных вариантов придумать ;))) ... перевести в csv и т.д. но неужели нет ни каких стандартных способов ?!
31 май 10, 15:30    [8862732]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
Glory
Member

Откуда:
Сообщений: 104751
xed1000000
Glory,

Можно конечно кучу обходных вариантов придумать ;))) ... перевести в csv и т.д. но неужели нет ни каких стандартных способов ?!

Эммм. А cast/convert - это уже нестандартный способ ?
31 май 10, 15:36    [8862781]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

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

проблема в том, что ошибка возникает на этапе обращения к провайдеру, cast/convert тут не помогут...
31 май 10, 15:51    [8862962]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
Glory
Member

Откуда:
Сообщений: 104751
xed1000000
Glory,

проблема в том, что ошибка возникает на этапе обращения к провайдеру, cast/convert тут не помогут...

Как интересно. Через 5 часов выясняется, что оказывается какой-то запрос оканчивается какой-то ошибкой. И вы даже можете привести текст этой ошибки ?
31 май 10, 15:55    [8862999]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Полагаю, товарищ не может подгрузить примерно такой файл в примерно такую таблицу: CREATE TABLE #tbl (txt nvarchar(250))
5я строчка файла, где текст начинается с нуля, подгружается коряво.

Я тоже сталкивался с похожей проблемой, но так и не решил ее. Пришлось тогда идти окольными путями.
31 май 10, 17:15    [8863859]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 7498
Задайте явно для исходного файла текстовый формат всех полей в текстовый. Или выгрузите в csv И пользуйтесь консольными утилитами.
31 май 10, 19:38    [8864851]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

Откуда: Оттуда
Сообщений: 42
Доброе утро всем ;)

по ссылке , находится проблемный excel файл. Вот его и нужно подгрузить на сервер, таким каким мы видим его в Excel.

При использовании
CREATE TABLE #table (txt nvarchar(250))

insert into #table select txt FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'Excel 8.0; Database=E:\ \ExcelFile.xls; IMEX=1;HDR=Yes', 'Select txt from [лист1$]')

Получается, что первую и последнюю строчку он преобразовывает в экспоненту!

Glory, под ошибкой я подразумевал то, что он не корректно выводит информацию и данная проблема возникает именно на этапе обращения к файлу, поэтому cast/convert тут не помогут.

ЛЮДИ ... что же делать ;))) !??!?!?
1 июн 10, 09:51    [8866688]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
Glory
Member

Откуда:
Сообщений: 104751
xed1000000


Glory, под ошибкой я подразумевал то, что он не корректно выводит информацию и данная проблема возникает именно на этапе обращения к файлу, поэтому cast/convert тут не помогут.

Интресно, как все же cast/convert нельзя применить для _вывода информации_ ?
Странная какая то у вас логика
1 июн 10, 10:32    [8866955]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

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

возможно я просто не знаю как их правильнее было бы применить, поэтому и обращаюсь за помощью....
скажите как ?
1 июн 10, 10:53    [8867124]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
Glory
Member

Откуда:
Сообщений: 104751
xed1000000
Glory,

возможно я просто не знаю как их правильнее было бы применить, поэтому и обращаюсь за помощью....
скажите как ?

Мда.
Сначала сделть конверт строки в число, а потом опять в строку с указанием нужных размера и точности ??
1 июн 10, 10:55    [8867144]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
xed1000000
Member

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

а можно продемонстрировать на конкретном примере ?!
1 июн 10, 11:00    [8867188]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование числа в экспоненциальный вид!  [new]
Glory
Member

Откуда:
Сообщений: 104751
xed1000000
Glory,

а можно продемонстрировать на конкретном примере ?!

Примеры есть в статье хелпа, описывающей функции CAST/CONVERT
1 июн 10, 11:02    [8867203]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить