查询中的SSIS变量



我有使用SQLServer 2012和具有变量:持有DateTime的clientlastsync并执行任务查询如下

select * from clnt where opendt > convert(varchar, CAST (@[User::clientLastSync] as date),101)

如果我执行软件包,则出现以下错误:

错误:SSIS错误代码DTS_E_OLEDBERROR。OLE DB错误具有 发生。错误代码:0x80040E07。有OLE DB记录可用。 资料来源:" Microsoft SQL Server本地客户端11.0" Hresult: 0x80040E07描述:"转换日期时转换失败 和/或字符串的时间。"。

您可以建议这里有什么问题。谢谢

您以 ?中的ssis中的变量传递,然后在参数映射窗格中定义变量。

假设您不是 silly 足以将您的日期存储为varchar,因此您的直接输入SQL在执行SQL任务中:

SELECT * FROM clnt WHERE opendt > ?;

然后,您需要转到参数映射窗格,然后单击添加。在变量名称列中选择变量的名称(可能是User::clientLastSync(。然后输入作为方向。DBTIMESTAMP作为您的数据类型和参数为0(如果您有其他参数为1、2、3等,则它们会在您的查询中显示的顺序(。将参数大小为-1。

这应该按照您的意图工作。

最新更新