Задача SSIS SQL с параметрами, не создающими временную таблицу

У меня есть задача SQL, которая создает временную таблицу, а затем задачу потока данных, которая выбирает из этой временной таблицы. Все работает отлично и прекрасно, но когда я добавляю параметр в задачу SQL, задача потока данных не выполняется, говоря, что временная таблица не была создана. Жесткое кодирование значений параметров работает.

Параметр сохранить то же соединение имеет значение true, метаданные установлены, и мои переменные Int32 отображаются как длинные с именами 0 и 1 и размером -1 для oledb.

Мне удалось воспроизвести его в меньшем масштабе

Задача SQL

DECLARE @Yesterday DATETIME
DECLARE @Today DATETIME

DECLARE @StartDisposition INT = ?
DECLARE @EndDisposition INT = ?

SET @Yesterday = CONVERT (date, DATEADD(day, @StartDisposition, GETDATE()))
SET @Today = CONVERT (date, DATEADD(day, @EndDisposition, GETDATE()))

SELECT @StartDisposition AS A, @Yesterday AS B, @Today AS C INTO #TempT

Задача потока данных, или просто задача SQL для этой цели

SELECT * FROM #TempT

Таким образом, что-то с параметрами, кажется, мешает созданию временной таблицы.

Спасибо

Использование строкового выражения для запроса работало. Вот как все прошло.

"DECLARE @Yesterday DATETIME
DECLARE @Today DATETIME

DECLARE @StartDisposition INT = " + (DT_STR, 20, 1252)@[User::StartDisposition] + "
DECLARE @EndDisposition INT =  " + (DT_STR, 20, 1252)@[User::EndDisposition] + "

SET @Yesterday = CONVERT (date, DATEADD(day, @StartDisposition, GETDATE()))
SET @Today = CONVERT (date, DATEADD(day, @EndDisposition, GETDATE()))

SELECT @StartDisposition AS A, @Yesterday AS B, @Today AS C INTO #TempT"

Затем в задаче SQL вы меняете SQLSourceType на переменную

Спасибо за вашу помощь всем.

1 ответ

Иногда это странно. Но это можно решить, если мы создадим глобальную временную таблицу ( ##TempT)

Другие вопросы по тегам