Задача 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)