我是 SSIS 新手,无法将参数传递给 OLE DB 源。我想查询给定日期范围的数据。
我有两个变量,数据类型为 Date Time 的 variable1 ,变量的值由 expression 设置DATEADD("day", -1, GETDATE())
。数据类型为日期时间的变量2,变量的值由表达式设置DATEADD("day", 0, GETDATE())
在 OLE DB SOURCE 内部,数据访问模式设置为 SQL 命令,下面是 SQL 代码。
Select Col1, col2, col3, col4, coldate where Col1 = 'abc' and coldate between convert(varchar(10), ?, 101) and convert(varchar(10), ?, 101)
我已将参数映射为
参数0,用户::变量1,输入
参数1,用户::变量2,输入
当我点击预览时,我得到一个错误
“显示预览时出错
附加信息:没有为一个或多个必需参数提供值。(Microsoft SQL Server Native Client 11.0)"
当我调试任务时,我得到的错误是
[OLE DB 源 [38]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E21。OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80040E21 描述:“转换规范的字符值无效”。
注意:coldate 列的数据类型是 datetime
请帮我解决这个问题。我能够使用来自 OLE DB 源中的变量的数据访问模式 SQL 命令成功查询,但我被要求不要将数据访问模式用作 SQL 命令。谢谢你。