Sql server 在SSIS中使用ODBC源执行SQL任务
我创建了一个执行SQL任务,其中SQL源类型是可变的。创建的变量如下所示 开始时间:提供当前时间 结束时间:提供结束时间 startTimeFormat:用于将日期格式化为解析记录所需的格式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
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