Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
magsimus13
Member

Откуда:
Сообщений: 8
Помогите новичку! Гуглю 3-й день, не могу найти. Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса перед загрузкой в OLE DB? В какой компоненте можно привязать этот запрос? Везде, где заметил место для запроса, везде только подключение к базе данных. Но как мне обработать полученный из Excel набор данных?
28 май 15, 11:49    [17700473]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
magsimus13
Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса перед загрузкой в OLE DB?
Как преобразовать?
И зачем именно с помощью SQL?

ЗЫ: может Derived Column?
28 май 15, 12:17    [17700663]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
Но как мне обработать полученный из Excel набор данных?

Напишите код обработки на C# или VB#. Сервер здесь вообще никаким боком.
28 май 15, 12:27    [17700742]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4893
magsimus13
Помогите новичку! Гуглю 3-й день, не могу найти. Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса перед загрузкой в OLE DB? В какой компоненте можно привязать этот запрос? Везде, где заметил место для запроса, везде только подключение к базе данных. Но как мне обработать полученный из Excel набор данных?


Excel какой версии и присутствует ли в нём форматирование (именованные диапазоны), которые позволяют чётко идентифицировать области данных?
28 май 15, 13:14    [17701069]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
magsimus13
Member

Откуда:
Сообщений: 8
a_voronin, эксель 2007. Допер уже понемногу как получить данные (SELECT * FROM [Лист1$] ) в Execute SQL, где соединение с Эксель, оказывается надо было имя листа в квадратных скобках в запросе, а еще задать еще переменную для результирующего набора записей. Выполняется успешно.
Но теперь вопрос, как мне этот результирующий набор передать дальше, для вывода в таблицу БД. Есть эта переменная в Потоке управления. Как ее открыть в поток данных для изменения и загрузки?
28 май 15, 14:47    [17701720]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4893
magsimus13
a_voronin, эксель 2007. Допер уже понемногу как получить данные (SELECT * FROM [Лист1$] ) в Execute SQL, где соединение с Эксель, оказывается надо было имя листа в квадратных скобках в запросе, а еще задать еще переменную для результирующего набора записей. Выполняется успешно.
Но теперь вопрос, как мне этот результирующий набор передать дальше, для вывода в таблицу БД. Есть эта переменная в Потоке управления. Как ее открыть в поток данных для изменения и загрузки?


Вам надо в принципе по другому действовать. Сделать в DataFlow источник данных через Excel Connection, если у вас там данные на листе уложены и вы знаете как

вот здесь step 4 5
https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server---10-steps-to-follow/
28 май 15, 15:09    [17701869]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
magsimus13
Member

Откуда:
Сообщений: 8
a_voronin, Эх, снова английский мануал... беда. мне просто из Эксель надо получать одну строку. И потом ее парсить. Разбить на две части сначала, на два столбца... а потом один из столбцов разбить на несколько частей - и это уже будут новые строки в этом же столбце. То есть это все можно сделать SQL запросом. Вот и парюсь. Если был бы структурированный файл эксель, то там все просто - в дата флоу все реализовывается элементарно
28 май 15, 16:54    [17702710]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4893
magsimus13
a_voronin, эксель 2007. Допер уже понемногу как получить данные (SELECT * FROM [Лист1$] ) в Execute SQL, где соединение с Эксель, оказывается надо было имя листа в квадратных скобках в запросе, а еще задать еще переменную для результирующего набора записей. Выполняется успешно.
Но теперь вопрос, как мне этот результирующий набор передать дальше, для вывода в таблицу БД. Есть эта переменная в Потоке управления. Как ее открыть в поток данных для изменения и загрузки?


Вы на C# писать может? Возьмите Script Componenet и откройте там датасет и найдите в нём строку и делайте с ней что надо.
28 май 15, 18:34    [17703406]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
magsimus13
Member

Откуда:
Сообщений: 8
a_voronin, Да, си шарп изучал 4 месяца назад. Но по заданию обязательно sql) Спасибо за подсказки, продвигаюсь понемногу
28 май 15, 20:29    [17703772]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
magsimus13
a_voronin, Эх, снова английский мануал... беда. мне просто из Эксель надо получать одну строку. И потом ее парсить. Разбить на две части сначала, на два столбца... а потом один из столбцов разбить на несколько частей - и это уже будут новые строки в этом же столбце. То есть это все можно сделать SQL запросом. Вот и парюсь. Если был бы структурированный файл эксель, то там все просто - в дата флоу все реализовывается элементарно
Я тут скальпель купил, как мне аппендицит удалить...
Прочитайте хотя бы один самоучитель по SSIS, особенно про компоненты DataFlow.
28 май 15, 20:49    [17703849]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
magsimus13
a_voronin, Да, си шарп изучал 4 месяца назад. Но по заданию обязательно sql) Спасибо за подсказки, продвигаюсь понемногу
Единственное место где можно использовать SQL в DataFlow это источник данных, так что если у вас такое странное задание, то все ваши преобразования должны выполнятся там где вы написали "SELECT * FROM [Лист1$]", хотя я сомневаюсь что полноценный SQL поддерживается Excel драйвером.
28 май 15, 20:52    [17703865]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
magsimus13
Member

Откуда:
Сообщений: 8
Mind, вот и я много времени потерял, пытаясь в Дата флоу организовать это все. На самом деле все это делается в дата контрол с помощью задачи Execute SQL. Там можно подключиться к Экселю и использовать SQL для считывания с него данных, указывая во FROM имя листа Экселя.
28 май 15, 21:04    [17703914]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
magsimus13
Mind, вот и я много времени потерял, пытаясь в Дата флоу организовать это все. На самом деле все это делается в дата контрол с помощью задачи Execute SQL. Там можно подключиться к Экселю и использовать SQL для считывания с него данных, указывая во FROM имя листа Экселя.

Но теперь вопрос, как мне этот результирующий набор передать дальше, для вывода в таблицу БД. Есть эта переменная в Потоке управления. Как ее открыть в поток данных для изменения и загрузки?
Никак.

Если вы такой упертый как баран и никого не слушаете, то зачем пришли на форум спрашивать совета? Данные надо считывать и записывать в DataFlow.
А если вам так уж хочется извращаться, то вам поможет либо Foreach Loop Container, либо как уже советовали Script на C#, только ни то ни другое не будет SQL.
28 май 15, 23:07    [17704429]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
magsimus13
Member

Откуда:
Сообщений: 8
Mind, Вот что непонятного - у меня на собеседование тестовое задание такое - сделать это все в SSIS и только при помощи SQL. Не я это придумал. А вы со своим си-шарпом. Вроде ж объяснил...
29 май 15, 14:43    [17706768]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4893
magsimus13
Mind, Вот что непонятного - у меня на собеседование тестовое задание такое - сделать это все в SSIS и только при помощи SQL. Не я это придумал. А вы со своим си-шарпом. Вроде ж объяснил...


А вы не в курсе, что в SSIS можно очень хорошо писать блоки на C# ? И в control flow и в data flow
29 май 15, 14:47    [17706794]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
magsimus13
Member

Откуда:
Сообщений: 8
a_voronin, я находил такую возможность... но нельзя по заданию
29 май 15, 15:02    [17706942]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
magsimus13
Mind, Вот что непонятного - у меня на собеседование тестовое задание такое - сделать это все в SSIS и только при помощи SQL. Не я это придумал.
Так и делайте на SQL

Делаете DataFlow от источника к приёмнику (от эксель к сиквелу). Но в качестве источника делаете не таблицу, и запрос, в котором и делаете свои преобразования.
29 май 15, 15:08    [17706997]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4893
magsimus13
a_voronin, я находил такую возможность... но нельзя по заданию


Вы куда собираетесь пройти по конкурсу? Вам там мозг не вынесут потом?
29 май 15, 15:24    [17707168]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
a_voronin
magsimus13
a_voronin, я находил такую возможность... но нельзя по заданию


Вы куда собираетесь пройти по конкурсу? Вам там мозг не вынесут потом?
magsimus13 руководителем устраивается.

Кадровик прочитает этот тред, и оценит менеджерские качества. :-)
29 май 15, 15:53    [17707358]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
magsimus13
Member

Откуда:
Сообщений: 8
a_voronin, уже нашел выход... там оказывается можно вызвать хранимую процедуру SQL, вместо текста запроса. Вот так элементарно, но надо было до этого еще додуматься и перекопать очередную кучу сайтов
29 май 15, 15:54    [17707368]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
magsimus13
a_voronin, уже нашел выход... там оказывается можно вызвать хранимую процедуру SQL, вместо текста запроса. Вот так элементарно
Эээ, а чем отличается вызов процедуры от вставки туда текста процедуры?
Пишите там что угодно, любые преобразования/вычисления, им даже обращения к другим серверам.

Или вы "запрос" в Execute SQL Task понимаете как SELECT ? :-)
29 май 15, 16:01    [17707403]     Ответить | Цитировать Сообщить модератору
 Re: SOS! Как в SSIS полученные из Эксель данные преобразовать с помощью SQL запроса до загрузк  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
alexeyvg
magsimus13
a_voronin, уже нашел выход... там оказывается можно вызвать хранимую процедуру SQL, вместо текста запроса. Вот так элементарно
Эээ, а чем отличается вызов процедуры от вставки туда текста процедуры?
Пишите там что угодно, любые преобразования/вычисления, им даже обращения к другим серверам.

Или вы "запрос" в Execute SQL Task понимаете как SELECT ? :-)
У меня есть подозрение, что товарищ очень сильно плавает в базовых терминах. Ну что-ж пожелаем ему удачи на интервью.
А вообще, я бы с удовольствем посмотрел на вызов хранимой процедуры в Excel Connection. :-)
29 май 15, 19:17    [17708277]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить