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

Откуда:
Сообщений: 36439
День добрый.
Никак не могу решить для себя такую задачу. У меня есть некое значение переменной, в зависимости от ее значения надо или выполнять пакет или сразу отменять его выполнение.
Переменную я могу получить вот так (не спрашивайте почему так, так получилось):

eclare @q bit
exec dbo.IsBaseLock @q out

как мне это дело анализировать?
В пакете есть переменная IsLosk. Как мне в нее занести это значение и как проанализировать?
16 сен 15, 13:16    [18155681]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
жЫвоглот
Member

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

declare @q bit
exec dbo.IsBaseLock @q out
set @[User::IsLosk] = @q

ругается
16 сен 15, 13:33    [18155780]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4260
В задаче TaskScript
16 сен 15, 13:44    [18155857]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4260
Script Task, если быть точным
16 сен 15, 13:47    [18155875]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
жЫвоглот,

Оборачиваете весь код пакете в контейнер.

Далее -- делаете с пустого блока переход. Ставите на этот переход ваше переменная == ...


Пустой контейнер ======= условие ======> Основной контейнер

похоже на что-то такое

Картинка с другого сайта.

Есть ещё проще способ -- параметризуйте параметр disable у пакета.
16 сен 15, 13:49    [18155898]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
а в Execute SQL Task никак?
там уже и нужный коннекшен есть, а в скрипте писать надо всякое.
16 сен 15, 13:50    [18155901]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4260
В коде скрипта в зависимости от значения выставляете результат Success или Fail, а на выходе выбираете куда идти в том или ином случае. Пример привести не могу, пока нет под рукой среды разработки.
Но в интернете полно примеров, почти готовых.
Удачи!
16 сен 15, 13:52    [18155924]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
a_voronin
жЫвоглот,

Оборачиваете весь код пакете в контейнер.

Далее -- делаете с пустого блока переход. Ставите на этот переход ваше переменная == ...


Пустой контейнер ======= условие ======> Основной контейнер

похоже на что-то такое

Картинка с другого сайта.

Есть ещё проще способ -- параметризуйте параметр disable у пакета.

а как в Execute SQL Task мне присвоить значение переменной в пакете?
16 сен 15, 13:53    [18155931]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4260
жЫвоглот
а в Execute SQL Task никак?

Совсем забыл... в этом таске нужно назначить значение из переменной @q в переменную пакета @[User::IsLosk]!
16 сен 15, 13:57    [18155990]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
SQL2008
жЫвоглот
а в Execute SQL Task никак?

Совсем забыл... в этом таске нужно назначить значение из переменной @q в переменную пакета @[User::IsLosk]!

пробовал
ругается на интаксис

declare @q bit
exec dbo.IsBaseLock @q out
set @[User::IsLosk] = @q
16 сен 15, 13:59    [18156013]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4260
жЫвоглот
а как в Execute SQL Task мне присвоить значение переменной в пакете?


[SRC SQL Statement ]
declare @q bit
exec dbo.IsBaseLock @q out
select @q[/SRC]

Parameter Mapping назначить соответствие выходного параметра -> @[User::IsLosk]
16 сен 15, 14:00    [18156033]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
с картинками:
http://dataqueen.unlimitedviz.com/2012/08/how-to-set-and-use-variables-in-ssis-execute-sql-task/
16 сен 15, 14:02    [18156062]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
жЫвоглот
a_voronin
жЫвоглот,

Оборачиваете весь код пакете в контейнер.

Далее -- делаете с пустого блока переход. Ставите на этот переход ваше переменная == ...


Пустой контейнер ======= условие ======> Основной контейнер

похоже на что-то такое

Картинка с другого сайта.

Есть ещё проще способ -- параметризуйте параметр disable у пакета.

а как в Execute SQL Task мне присвоить значение переменной в пакете?


В разделе Result Set
https://msdn.microsoft.com/en-us/library/ms141689.aspx
https://msdn.microsoft.com/en-us/library/cc280492.aspx
Картинка с другого сайта.
16 сен 15, 14:06    [18156103]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
всем спасибо, заработало!
16 сен 15, 17:03    [18157340]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
дополнение и уточнение
На выход Execute SQL Task , где переменная заполняется, при крутил-таки Script Task, где переменная анализируется (там еще кое что надо делать, поэтому так).
Чтобы прекратить работу скрипта написал
        If Dts.Variables.Item("переменная").Value Then
            Dts.TaskResult = ScriptResults.Failure
        Else
            Dts.TaskResult = ScriptResults.Success


Пакет прекращает работу, но с ошибкой. Меня это не особо парит, но можно ли его завершать просто тихо и мирно, без ошибок?
17 сен 15, 11:03    [18159534]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
msLex
Member

Откуда:
Сообщений: 8191
жЫвоглот
дополнение и уточнение
На выход Execute SQL Task , где переменная заполняется, при крутил-таки Script Task, где переменная анализируется (там еще кое что надо делать, поэтому так).
Чтобы прекратить работу скрипта написал
        If Dts.Variables.Item("переменная").Value Then
            Dts.TaskResult = ScriptResults.Failure
        Else
            Dts.TaskResult = ScriptResults.Success


Пакет прекращает работу, но с ошибкой. Меня это не особо парит, но можно ли его завершать просто тихо и мирно, без ошибок?

Вам же предлагали изменить тип "стрелочки" от таски с получением значения переменной до следующей таски на "constraint + expression"
17 сен 15, 12:58    [18160417]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
Я так уже попробовал, работает, спасибо.
Но надо больше гибкости, поэтому хочу попробовать через скрипт.
17 сен 15, 13:11    [18160486]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2995
жЫвоглот
дополнение и уточнение
На выход Execute SQL Task , где переменная заполняется, при крутил-таки Script Task, где переменная анализируется (там еще кое что надо делать, поэтому так).
Чтобы прекратить работу скрипта написал
        If Dts.Variables.Item("переменная").Value Then
            Dts.TaskResult = ScriptResults.Failure
        Else
            Dts.TaskResult = ScriptResults.Success


Пакет прекращает работу, но с ошибкой. Меня это не особо парит, но можно ли его завершать просто тихо и мирно, без ошибок?

SSIS - как погасить ошибку в задаче?
17 сен 15, 14:43    [18161133]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
Спасибо, интересно.
А как программно остановить выполнение пакета?
17 сен 15, 14:57    [18161260]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4260
жЫвоглот
Спасибо, интересно.
А как программно остановить выполнение пакета?

Вы имеете в виду из самого пакета? Никак. Просто выход.
17 сен 15, 17:57    [18162461]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2995
SQL2008
жЫвоглот
Спасибо, интересно.
А как программно остановить выполнение пакета?

Вы имеете в виду из самого пакета? Никак. Просто выход.

можно RunningPackage.Stop
просто человеку, видать, лень поискать :\
18 сен 15, 08:11    [18163845]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4260
HandKot
SQL2008
пропущено...

Вы имеете в виду из самого пакета? Никак. Просто выход.

можно RunningPackage.Stop
просто человеку, видать, лень поискать :\

Это же из внешнего кода, уважаемый!
Я говорил про код внутри пакета.
18 сен 15, 10:59    [18164423]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
SQL2008
HandKot
пропущено...

можно RunningPackage.Stop
просто человеку, видать, лень поискать :\

Это же из внешнего кода, уважаемый!
Я говорил про код внутри пакета.

а, именно из самого пакета, это я нагуглил, само собой
есть волшебное слово, которое можно написать в скрипттаске и пакет остановится любым способом?
18 сен 15, 11:17    [18164495]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4260
жЫвоглот
пакет остановится любым способом?

Что произойдет после этого?
Работа пакета закончится, так?
Чем это отличается от выхода из пакета?
18 сен 15, 12:40    [18165028]     Ответить | Цитировать Сообщить модератору
 Re: Анализ пеерменной в SSIS  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
SQL2008
жЫвоглот
пакет остановится любым способом?

Что произойдет после этого?
Работа пакета закончится, так?
Чем это отличается от выхода из пакета?

да ничем, мне просто прекратить его выполнение
я сделал через генерацию ошибки, работает
меня интересует, можно ли внутри пакета написать в коде stop и пакет прекратит выполняться?
18 сен 15, 12:44    [18165075]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить