2012-07-11 58 views
0

本質上來說,我是一個帶有Execute SQL語句的SSIS pkg,它根據某些表值動態地編寫REPLACE函數。 (如更換(REPLACE(Col1中, 「*」, 「」), 「@@@」, 「」)在派生列轉換中使用變量作爲表達式SSIS

的ExecuteSQL結果被投入變量@Cleanse

在我的派生列轉換林試圖調用@User :: Cleanse作爲表達式來替換DataFlow中Col1的值

結果似乎是拉@Cleanse的結果並將其作爲字符串值使用,而不是將其應用爲REPLACE函數

當調試@Cleanse值似乎是在字符串中放\,我不認爲NK應該的問題,因爲它似乎是appliying這爲其他值不會有問題

結果是跑出來的CSV,這是把

當「REPLACE(REPLACE(Col1中」在Col1中

*」在col2的

)在COL3等等等等

我怎樣才能獲得派生列轉換到「看」的變量函數,而不是一個字符串值?

提前

回答

1

非常感謝設置變量的EvaluateAsExpression屬性True

然而,結合變量作爲參數使用Variable Mappings窗格中執行SQL任務的SQL查詢可能是一個更好的解決方案

+0

你是不是想實際表達傳遞到您的派生列轉型?也就是說,就我所知,不可能的。 – 2012-07-12 09:46:47

+0

Hi @Jeroen 好嗎?也許我錯過了什麼 如果我將var設置爲Evaluate as Expression我需要使用編輯器編寫表達式....所以爲了這些目的,我創建了帶有User :: Cleanse表達式的@ Cleanse2 這似乎是給我同樣的結果...即將字符串拉過來作爲字符串,不作爲REPLACE語句使用。 – Nique 2012-07-12 09:46:53

+0

Ahhhhh 是的我是 實際的表達式由ExecuteSQL任務編譯和證明。所以reult被放在變量= REPLACE(REPLACE(COL1,「*」,「」),「@@@」<「」) 然後我調用派生列轉換的表達式中的變量 – Nique 2012-07-12 09:49:16