2010-03-01 84 views
0

在數據流中,我有派生列任務。在該列的一個表達,我有以下表現:SSIS表達式 - EvaluateAsExpression問題

[siteid] == "100" ? "1101" : [siteid] == "110" ? "1001" : [siteid] == "120" ? "2101" : [siteid] == "140" ? "1102" : [siteid] == "210" ? "2001" : [siteid] == "310" ? "3001" : [siteid] 

這一切正常。但是,我打算在至少十幾個其他地方重複使用它,所以我想將它存儲到變量中,並在派生列中使用變量而不是硬編碼表達式。當我嘗試使用上述表達式創建變量時,出現語法錯誤,說明「siteid」未定義。我想這是有道理的,因爲它不是。但是我怎麼能通過使用一個變量來獲得這個表達式?似乎我需要某種方式告訴它,'siteid'將是包含我想要應用表達式的數據的列。

回答

1

不能在變量表達式中使用列名。我擔心在SSIS中無法輕鬆「克隆」這個邏輯。

但是,我會建議你不要試圖克隆這樣的硬編碼邏輯。構建參考表並使用Lookup組件來獲取該值。這樣,如果你的「案例」陳述發生了變化,你只需要做一個修改 - 你不需要在任何地方搜索這個邏輯得到使用。 Lookup的配置非常容易拖放。