powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSIS - execute SQL task. Как получить данные из временной таблицы?
9 сообщений из 9, страница 1 из 1
SSIS - execute SQL task. Как получить данные из временной таблицы?
    #39529526
User2155
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,
мне нужно "на лету" создать большую команду SQL для чужого сервера (не SQL).
Для этого я использую Execute SQL Task чтобы эту команду склеить из кусочков. Порядок работы:

1) Заполняю SQLStatement.
Что-то вроде этого:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
-- Переменная для работы
declare @my_command nvarchar(max);

-- Формируем команду SQL (тут может быть довольно много кода)
set @my_command = 'select from tbl_main where (......)';
set @my_command = replace(@my_command, 'old_val', 'new_val');
set @my_command = '.....';

-- Вот этот кодик выводит финальную команду SQL и я хочу прочитать её в SSIS пакете
select @my_command as col1;



3) На вкладке General пишу что resultset должен быть SingleRow.

2) На вкладке ResultSet показываю что переменная должна прочитать значение колонки col1.

Нифига не работает. SSIS пакет не хочет читать значение колонки col1.
Я уже с этим сталкивался - это из-за выборки "на лету". Т.е. вот этого: select @my_command as col1;
Если бы там стояла реальная таблица, то все было бы хорошо. Как победить??

Спасибо.
...
Рейтинг: 0 / 0
SSIS - execute SQL task. Как получить данные из временной таблицы?
    #39529586
User2155
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выкрутился.

1) Создал Data Flow Task.
2) Дальше "Ole DB Source" и там сформировал команду SQL.
3) Добавил "Script component" в режиме "Destination" и присвоил значения переменным.
...
Рейтинг: 0 / 0
SSIS - execute SQL task. Как получить данные из временной таблицы?
    #39529610
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
склеивать из кусочков динамический sql, к тому же большой - моветон, ИМХО
...
Рейтинг: 0 / 0
SSIS - execute SQL task. Как получить данные из временной таблицы?
    #39529750
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
User2155Я уже с этим сталкивался - это из-за выборки "на лету". Т.е. вот этого: select @my_command as col1;отнюдь... это нормально работает.
другой вопрос где у вас здесь "временная таблица"?
и надеюсь вы понимаете, что nvarchar(max) это вовсе не string?
...
Рейтинг: 0 / 0
SSIS - execute SQL task. Как получить данные из временной таблицы?
    #39529894
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
User2155Добрый день,
мне нужно "на лету" создать большую команду SQL для чужого сервера (не SQL).
Для этого я использую Execute SQL Task чтобы эту команду склеить из кусочков.
...

А зачем так, довольно странный способ. Есть гораздо лучше и проще - называется variable expressions. Вы можете для переменной определить выражение для вычисления, и оно будет вычислено при обращении к переменной.
...
Рейтинг: 0 / 0
SSIS - execute SQL task. Как получить данные из временной таблицы?
    #39529899
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
User2155,

К вашему исходному вопросу - если вы используете OLEDB connection manager, то выходные параметры задаются как номера столбцов. То есть в вашем случае - задавайте номер колонки 0 и читайте его.
По именам читать умеют только ADO.NET connection manager, но там свои проблемы.
...
Рейтинг: 0 / 0
SSIS - execute SQL task. Как получить данные из временной таблицы?
    #39530000
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipuxесли вы используете OLEDB connection manager,
то выходные параметры задаются как номера столбцов.
То есть в вашем случае - задавайте номер колонки 0 и читайте его.и чем вам имена полей не угодили?
...
Рейтинг: 0 / 0
SSIS - execute SQL task. Как получить данные из временной таблицы?
    #39530083
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipux,

про expression для variable - это здорово сам пользуюсь, но если или преобразования сложные или составных частей много, то их всех надо предварительно загнать в свои переменные, а если кроме этого они больше не нужны какой смысл? тем более что код выражения получается абсолютно не читаемый в этом случае и для его редактирования приходится пользоваться внешними редакторами.. а уж что-то поправить быстро вообще не удобно.
поэтому иногда Execute SQL Task или Script Task предпочтительнее.
...
Рейтинг: 0 / 0
SSIS - execute SQL task. Как получить данные из временной таблицы?
    #39530473
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка,

Да, вы правы, должно читать. Видимо, фантомы после SSIS 2005/2008, там были гм, специфики...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSIS - execute SQL task. Как получить данные из временной таблицы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]