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

Откуда: Россия, Москва
Сообщений: 116
Доброго времени суток.
Подскажите в чем может быть дело.
Есть SSIS пакет, импортирующий данные в базу SQL.
Для импорта используется OLE DB Source. Импортируется в частности одно числовое поле, при импорте OLE DB по каким-то видимым ему причинам некоторым значениям делает другой формат:
например: в Excel 1540209000 а Preview Query Results 1.54021e+009.
Что и где надо подкрутить, чтобы OLE DB ничего не "додумывал", а просто копировал "как есть" ?

Спасибо.
29 окт 10, 11:43    [9698730]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
импортирующий данные в базу SQL.


И какие типы полей в таблице?

автор
значениям делает другой формат:
например: в Excel 1540209000 а Preview Query Results 1.54021e+009.


Это не формат! Число трактуется как float.

автор
Что и где надо подкрутить, чтобы OLE DB ничего не "додумывал", а просто копировал "как есть" ?


Так что же все-таки не так с копирование по его завершению, если учитывать, что "формат" - это свойство утилиты "отображения"?
29 окт 10, 11:49    [9698787]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
rsolanov
Member

Откуда:
Сообщений: 930
Необходимо явно указать типы полей. Это правда делается не сложно.
29 окт 10, 11:51    [9698813]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
_Виктор_
Member

Откуда: Россия, Москва
Сообщений: 116
коллеги,
1. в SQL Server поля nvarchar
2. отображается как float, как заставить отображать как есть в Excel ? Не пересохраняя каждый день данные в Excel ?
3. Где необходимо явно указывать типы?
29 окт 10, 11:55    [9698881]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
1. в SQL Server поля nvarchar


А почему в числа грузите в nvarchar?

автор
2. отображается как float, как заставить отображать как есть в Excel ? Не пересохраняя каждый день данные в Excel ?


Какая разница, как отображает предпросмотр визард?! Вы что дальше с данными так же через визард работать будете?

автор
3. Где необходимо явно указывать типы?


Для начала разберитесь со структурой "принимающей" таблицы.
29 окт 10, 12:26    [9699282]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
rsolanov
Member

Откуда:
Сообщений: 930
Как Вам советует pkarklin, разберитесь с типом принимающей таблицы, если необходимо преобразование типов, используйте компонент "Преобразование данных".
29 окт 10, 12:37    [9699381]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
_Виктор_
Member

Откуда: Россия, Москва
Сообщений: 116
pkarklin, так как в этом столбце могут быть как числовые, так и строковые данные.
автор
Какая разница, как отображает предпросмотр визард?! Вы что дальше с данными так же через визард работать будете?

данные хранятся как я указал "1540209000", а вот почему OLE DB их видит по-другому, вопрос.
Это очень напоминает ситуацию, когда пытаешься импортировать данные через Excel source - excel на основании нескольких строчек присваивает тип числовой или строковый всему столбцу.. а потом начинаются веселости в виде NULL значений в ячейках, которые не число, если Excel определил столбец как число и наоборот.
29 окт 10, 12:39    [9699404]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
так как в этом столбце могут быть как числовые, так и строковые данные.


Феерично! Что это за атрибут и какой сущности?

Сохраните в csv, загружайте как текст.
29 окт 10, 12:43    [9699445]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
_Виктор_
Member

Откуда: Россия, Москва
Сообщений: 116
Уважаемый, pkarklin!
Вы сначала вопрос поймите, а потом фейерверки устраивайте.
Еще раз:
дано: файл excel данные загружаются каждый день
надо: чтобы данные, импортируемые в SQL были такого же типа как в Excel, то есть если это 50002323, то и выгружаться также должно, а не переводиться в другой формат (float, например).

В OLE DB Source есть возможность указать, чтобы никаких преобразований не делалось?

Прошу отвечать по существу.
Спасибо.
29 окт 10, 14:06    [9700445]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
Glory
Member

Откуда:
Сообщений: 104751
_Виктор_
Уважаемый, pkarklin!
Вы сначала вопрос поймите, а потом фейерверки устраивайте.

Для начала это вы поймите, что серверу все равно, что 1540209000, что 1.54021e+009
Потому что это одно и тоже число
И если уж вы захотели хранить числа как строки да еще в перемешку, то именно вам придется заниматься конвертацией этих чисел в строки нужного вам вида
Потому что не надо путать "я вижу" с "хранится в файле"
29 окт 10, 14:15    [9700543]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
Вы сначала вопрос поймите, а потом фейерверки устраивайте.


Ваш вопрос понятен более чем!

автор
чтобы данные, импортируемые в SQL были такого же типа как в Excel,


О, откройте великую тайну, какого тип данных у вас имеют данные в Excel?

автор
если это 50002323, то и выгружаться также должното и выгружаться также должно, а не переводиться в другой формат (float, например)


Ооо... Так же - это как же? Поставьте себя на место "импортера" и скажите, какой тип данных должен быть?

И, самое главное, Вы на вопросы будете отвечать?

pkarklin
Так что же все-таки не так с копирование по его завершению, если учитывать, что "формат" - это свойство утилиты "отображения"?


Т.е. что Вы получаете в результате в целевой таблице?

ЗЫ. Про CSV я уже говорил...
29 окт 10, 14:16    [9700569]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
Melkomyagkii_newbi
Member

Откуда: из прошлого
Сообщений: 2073
Та же проблема. В базе поле имеет тип nvarchar, импорт из эксельки если там число дает NULL вместо необходимой строки с числом.
12 окт 11, 16:41    [11428383]     Ответить | Цитировать Сообщить модератору
 Re: SSIS 2008. Из Excel в SQL Server  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
Проблема, конечно, никакого отношения к принимающей таблице не имеет.
Чтобы драйвер excel не пытался самостоятельно определять типы столбцов, в расширенных свойствах Excel connection
надо указать IMEX=1.
Умеет ли OLE DB Source правильно передать этот параметр - не пробовал, я пользуюсь EXCEL source
12 фев 12, 20:11    [12078117]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить