Sql server 在SSIS中使用ODBC源执行SQL任务

Sql server 在SSIS中使用ODBC源执行SQL任务,sql-server,ssis,odbc,informix,Sql Server,Ssis,Odbc,Informix,我创建了一个执行SQL任务,其中SQL源类型是可变的。创建的变量如下所示 开始时间:提供当前时间 结束时间:提供结束时间 startTimeFormat:用于将日期格式化为解析记录所需的格式 startTimeFormat = (DT_WSTR, 4)DATEPART( "yyyy", @[User::startTime]) +"-" + RIGHT( "0" + (DT_WSTR, 2) MONTH(@[User::startTime]), 2) +"-" + RIGHT( "0" + (DT

我创建了一个执行SQL任务,其中SQL源类型是可变的。创建的变量如下所示

开始时间:提供当前时间

结束时间:提供结束时间

startTimeFormat:用于将日期格式化为解析记录所需的格式

startTimeFormat = (DT_WSTR, 4)DATEPART( "yyyy", @[User::startTime]) +"-" +
RIGHT( "0" + (DT_WSTR, 2) MONTH(@[User::startTime]), 2) +"-" +
RIGHT( "0" + (DT_WSTR, 2) DAY(@[User::startTime]), 2) +" " +
(DT_WSTR, 2)DATEPART( "Hh", @[User::startTime] ) + ":" +
(DT_WSTR, 2)DATEPART( "mi", @[User::startTime] ) + ":" +
(DT_WSTR, 2)DATEPART( "ss", @[User::startTime] )
endTimeFormat: (DT_WSTR, 4)DATEPART( "yyyy", @[User::endTime] ) +"-" +
RIGHT( "0" + (DT_WSTR, 2) MONTH( @[User::endTime] ), 2) +"-" +
RIGHT( "0" + (DT_WSTR, 2) DAY(@[User::endTime] ), 2) +" " +
(DT_WSTR, 2)DATEPART( "Hh", @[User::endTime]) + ":" +
(DT_WSTR, 2)DATEPART( "mi", @[User::endTime]) + ":" +
(DT_WSTR, 2)DATEPART( "ss", @[User::endTime])
endTimeFormat:用于将日期格式化为解析记录所需的格式

startTimeFormat = (DT_WSTR, 4)DATEPART( "yyyy", @[User::startTime]) +"-" +
RIGHT( "0" + (DT_WSTR, 2) MONTH(@[User::startTime]), 2) +"-" +
RIGHT( "0" + (DT_WSTR, 2) DAY(@[User::startTime]), 2) +" " +
(DT_WSTR, 2)DATEPART( "Hh", @[User::startTime] ) + ":" +
(DT_WSTR, 2)DATEPART( "mi", @[User::startTime] ) + ":" +
(DT_WSTR, 2)DATEPART( "ss", @[User::startTime] )
endTimeFormat: (DT_WSTR, 4)DATEPART( "yyyy", @[User::endTime] ) +"-" +
RIGHT( "0" + (DT_WSTR, 2) MONTH( @[User::endTime] ), 2) +"-" +
RIGHT( "0" + (DT_WSTR, 2) DAY(@[User::endTime] ), 2) +" " +
(DT_WSTR, 2)DATEPART( "Hh", @[User::endTime]) + ":" +
(DT_WSTR, 2)DATEPART( "mi", @[User::endTime]) + ":" +
(DT_WSTR, 2)DATEPART( "ss", @[User::endTime])
callProcedureQuery:此变量用于生成过程调用,其中包括startTimeFormat和endTimeFormat。该变量用于SQL执行任务

"call sp_ccdr ('"+ @[User::startTimeFormat]  + "', " + "'" + @[User::endTimeFormat]  + 
"', '0',null,null,null,null,null,null,null,null,null,'NULL','NULL','f'"+ ")"
在执行SQL任务的中,我返回已为其创建新变量的完整集合varExecTaskRslt其中,结果名称为0,变量类型为对象。这就是我的执行任务的外观

结果集:

我能够成功地解析它,但是当我执行executesql任务时,我得到了一个错误。错误如下:

[Execute SQL Task]错误:执行查询“call sp_ccdr” (“2018-05-13 14:47:30”,“2018-05-13 1…”失败,原因如下 错误:“ODBC无法提供断开连接的记录集 连接。“。可能的失败原因:查询出现问题, “ResultSet”属性设置不正确,参数设置不正确, 或连接未正确建立


请帮我找出可能出现的错误。

如果您使用的是SQL Server,为什么不使用OLE DB连接类型?另外,我假设
varExecTaskRslt
的数据类型是object?@larnu:因为我的源代码是Informix,它使用ODBC连接。所以不能使用OLE DB。是的,我已经提到varExecTaskRslt是object