2015-04-03 36 views
0

我一直試圖在SSIS 2012中添加一個動態查詢到查找轉換編輯器(編寫查詢而不是查找表),我無法做到。我引用了許多文章(herethis),並且都表示要在屬性中使用SQLCommand並將其作爲表達式。但我無法得到。有沒有東西丟失?下面是一個屏幕截圖,而不是表達式編輯器,我正在獲取字符串值編輯器。在ssis 2012中查看轉換動態SQL查詢

由於我沒有10個聲望,我無法發佈屏幕截圖。

+0

你能幫我理解爲什麼你認爲你需要動態查詢嗎? – billinkc 2015-04-03 14:31:18

+0

我正在通過lookup Transformation進行查找,以實現類似這樣的功能。 select * from table where col1 = variableName(這取決於用戶的選擇,這就是爲什麼我需要動態查詢),然後將這些結果與我的輸入結果進行查找,以便我可以篩選出符合我的查找條件的記錄,並報告那些不匹配的。 – 2015-04-03 14:47:57

回答

0

從你連接的答案的解釋也是有點令我困惑,所以也許你有同樣的問題。您需要做的是:

在您的Control Flow中選擇數據流任務。在數據流任務的屬性中,您將看到屬性表達式。按省略號,您應該可以配置SQLCommand的表達式。

enter image description here

+0

嗨JodyT,謝謝你的回覆。我需要LookUp轉換來執行符合條件的記錄,並捕獲與條件不匹配的記錄。請檢查我對billinkc的評論。 – 2015-04-03 14:49:23

0

在查找屬性對話框,請確保您沒有選擇「完全緩存」模式。轉到高級屏幕,並選中「修改SQL語句」。您可以在這裏輸入SQL語句?作爲參數佔位符並單擊「參數...」將其值分配給輸入列。看起來你不能使用變量,但是你可以在你的數據流源中填充一個額外的列來填充lookup參數。

+0

感謝您的回覆,我沒有嘗試過這個選項,但我得到的參數不能從sql語句中提取。提供程序可能無法幫助解析語句錯誤中的參數信息。我沒有檢查我的OLEDB連接,並沒有問題。 – 2015-04-09 17:48:12

+0

您在查找時嘗試參數化的查詢是什麼? SSIS有問題參數化某些查詢(子選擇,cte等)。也許它可以用更簡單的形式重寫。 – 2015-04-09 18:01:20

+0

從表中選擇Col1,Col2,Col3,其中Dept ='myparametershouldbehere'是我的連接管理器對查詢 的查詢,並且查找的輸入具有Col1和Col2,在其上進行查找。所以SQL語句看起來像這樣 select * from(從表中選擇Col1,Col2,Col3,其中Dept ='fornowhardcodedValue')reftable where reftable.Col1 =? amd reftable.Col2 =? – 2015-04-10 12:32:19

1

如何使用Cache作爲您的查找源?通過這種方式,您可以在DFT源中使用動態sql語句,並使用高速緩存轉換作爲目標,然後使用該高速緩存連接作爲查找的源。