簡體   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