繁体   English   中英

在SSIS中的查询中使用变量

[英]Using a variable in a lookup in SSIS

我正在尝试通过一些数据流任务进行循环。 对于每个循环,它将日期变量增加1(存储在变量中)。 在数据流任务内部,我有一个lookup任务,该任务应该使用作为sql语句一部分递增的变量,如下所示:

Select
    *
From
    Table
Where
    Date = @[User::Date]

但这不起作用,我得到这个错误:

Must declare the scalar variable "@".

试图将此变量放入lookup的sql中的任何帮助将不胜感激。 我也尝试在lookup使用参数,但也收到错误消息,指出参数不足

在查找之前使用派生列,并将新列的值设置为变量。 然后,在查找转换中,您可以使用表中的新派生列和日期列以及要查找的列进行直接映射。

在您的情况下,由于需求的性质,您似乎需要使用SQL。 因此,在将缓存模式更改为部分缓存后,请转到高级标签,然后将SQL更改为-

Select * 
From Table 
Where Date <> ?

单击参数按钮,然后将派生的列映射到Parameter0。 因此, 查找匹配输出现在将为您提供与变量@ [User :: Date]设置的派生列不匹配的所有日期。

您可以在派生的列组件中使用逻辑表达式来检查日期,并为新列分配布尔值,然后使用条件拆分来解析记录并修改数据流。

图像:派生列表达式示例

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM