我在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
答案 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)