我正在尝试使用 SSIS 2008 中的执行 SQL 任务将存储过程输出参数映射到包变量。
包变量是 SSIS 类型的 DateTime,存储过程参数是 SQL 类型的 DATETIME。
SQL 语句EXEC GetCurrentDate @CurrentDate=?
在参数映射屏幕中,参数被映射到包变量,并指定了方向输出和数据类型 DBTIMESTAMP。
当我运行包时,我收到以下错误:
[执行 SQL 任务] 错误:执行查询“EXEC GetCurrentDate @CurrentDate=?”失败,出现以下错误:“分配给变量“User::CurrentDate”的值的类型与当前变量类型不同。变量可能不在执行期间更改类型。变量类型是严格的,除了 Object 类型的变量。“。可能的失败原因:查询有问题,“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?
谢谢