Sql 查询以使用变量筛选ODBC源SSI中的数据
我正在ODBC source中编写源查询,以过滤列nvarchar上的记录,从而拉动增量加载 在SouceCodeExpression中,我编写了以下代码 选择*自Source_AuthorizationHistory,其中UpdateDate>+'@[User::LastUpdate]' 这里UpdateDate是来自源代码的nvarchar数据类型,我必须根据目标代码中最后更新的日期过滤源代码中的记录。因此,这里@[User::LastUpdate]变量数据类型是String @[用户::上次更新]= 从目标授权历史记录中选择Convertnvarchar、CastMaxETL_updated-1作为上次更新的日期 请帮助我编写此源查询表达式 选择*自Source_AuthorizationHistory,其中UpdateDate>+'@[User::LastUpdate]' 假设您的@[User::LastUpdate]值正确,我得到了以下错误 你有这个:Sql 查询以使用变量筛选ODBC源SSI中的数据,sql,ssis,ssis-2012,Sql,Ssis,Ssis 2012,我正在ODBC source中编写源查询,以过滤列nvarchar上的记录,从而拉动增量加载 在SouceCodeExpression中,我编写了以下代码 选择*自Source_AuthorizationHistory,其中UpdateDate>+'@[User::LastUpdate]' 这里UpdateDate是来自源代码的nvarchar数据类型,我必须根据目标代码中最后更新的日期过滤源代码中的记录。因此,这里@[User::LastUpdate]变量数据类型是String @[用户::上
"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)
你的报价放错地方了。您应该不厌其烦地在表达式编辑器中按“evaluate”,您会发现这不会导致有效的查询。是。。我通过计算..[SQLCODE:>:常量、聚合、$$、:、+、-、%ALPHAUP、%EXACT、%SQLSTRING、>%SQLUPPER、%STRING或%UPPER>]进行了更正。[缓存错误:]>[详细信息:][%msg: