Я пытаюсь использовать задачу «Выполнение SQL» в SSIS 2008 для сопоставления выходного параметра процедуры хранилища с переменной пакета.
Переменная пакета имеет тип SSIS DateTime, а параметр процедуры хранения - тип SQL DATETIME.
Оператор SQL равен EXEC GetCurrentDate @CurrentDate=?
, и на экране сопоставления параметров параметр сопоставляется с переменной пакета с указанием направления Выход и тип данных DBTIMESTAMP.
Когда я запускаю пакет, я получаю следующую ошибку:
[Выполнить задачу SQL] Ошибка: выполняется
запрос "EXEC GetCurrentDate
@ CurrentDate =? "не удалось с
следующая ошибка: «Тип
значение присваивается переменной
«User :: CurrentDate» отличается от
текущий тип переменной. Переменные могут
не меняйте тип во время исполнения.
Типы переменных являются строгими, за исключением
переменные типа Объект. ". Возможный
причины отказа: проблемы с
запрос, свойство "ResultSet" не установлено
правильно, параметры не установлены
правильно, или соединение не
установлено правильно.
Если я запускаю трассировку по выполняемому запросу, я вижу, что тип принимается как datetime2:
declare @p3 datetime2(7)
set @p3=NULL
exec sp_executesql N'EXEC GetCurrentDate @CurrentDate=@P1 ',N'@P1 datetime2(7) OUTPUT',@p3 output
select @p3
Кто-нибудь знает, почему предполагается, что типом является datetime2?
Спасибо