Проблема с выполнением процедуры в SSIS с задачей выполнения SQL - PullRequest
1 голос
/ 09 июля 2019

Я записываю три значения переменных из базы данных, используя задачу «Выполнение SQL», и если я проверяю, правильно ли записаны значения с точкой останова, все кажется правильным. Теперь я хочу использовать переменные, которые были записаны ранее в другой задаче выполнения SQL, для выполнения процедуры. Проблема в том, что значения переменных отображаются неправильно (я думаю). Я думал, что переменные не являются глобальными (на самом деле, когда я проверяю переменные, значения всегда равны нулю, а во время отладки в задаче, в которой я пишу, переменные не равны нулю). Как я могу решить эту проблему?

Вот как я называю процедуру:

exec FillCalendar ?, ?, ?, ?

(у меня 4 переменные).

Это отображение параметров:

enter image description here

Они расположены в порядке вопросительных знаков в запросе. Все они типа INT.

1 Ответ

0 голосов
/ 09 июля 2019

Ранее я сталкивался с проблемами, когда SSIS неправильно распознает входные параметры в Execute SQL Task.

Моя «лучшая практика» - теперь объявлять переменные-заполнители для всех входных параметров, а затемработать с заполнителями.Например, я мог бы изменить ваш хранимый вызов процедуры следующим образом:

DECLARE @Param1 VARCHAR(100)
DECLARE @Param2 INT
DECLARE @Param3 BIT
DECLARE @Param4 DATE

SET @Param1 = ?
SET @Param2 = ?
SET @Param3 = ?
SET @Param4 = ?

EXEC FillCalendar @ProcInput1 = @Param1, @ProcInput2 = @Param2, @ProcInput3 = @Param3, @ProcInput4 = @Param4

Где @ProcInput1, @ProcInput2, @ProcInput3, and @ProcInput4 - имена входных параметров хранимого процесса.Очевидно, вы бы объявили свои заполнители с правильным типом данных.

Дополнительная информация

Вы можете обратиться к следующим ссылкам для получения дополнительной информации о передаче переменных из и в SSISЗадачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...