查询使用变量

时间:2016-03-02 20:54:48

标签: sql ssis ssis-2012

我在ODBC源代码中编写源查询来过滤列(nvarchar)上的记录以提取增量加载。

在SouceCodeExpression中,我编写了以下代码。

"从Source_AuthorizationHistory中选择*,其中UpdateDate>" +"' @ [User :: LastUpdate]'"

这里UpdateDate是来自源的nvarchar数据类型,我必须根据目标中最后更新的日期从源中过滤记录。所以,这里@ [User :: LastUpdate]变量数据类型是String

@ [User :: LastUpdate] = 从Target_AUTHORIZATIONHISTORY中选择转换(nvarchar,Cast((Max(ETL_updated)-1)作为日期))作为LastUpdated

帮我写这个源查询表达式

"从Source_AuthorizationHistory中选择*,其中UpdateDate>" +"' @ [User :: LastUpdate]'"

我收到以下错误ErrorCode

1 个答案:

答案 0 :(得分:0)

假设@[User::LastUpdate]的值正确

你有这个:

"Select * from Source_AuthorizationHistory where UpdateDate >" + "'@[User::LastUpdate]'"

你需要这样做:

"Select * from Source_AuthorizationHistory where UpdateDate > (" +  @[User::LastUpdate] + ")"

因为这个表达式将等同于:

Select * from Source_AuthorizationHistory where UpdateDate > (Select Convert(nvarchar,Cast((Max(ETL_updated)-1) as Date)) as LastUpdated from Target_AUTHORIZATIONHISTORY)