我遇到問題,我不知道這是否可行。SSIS結果集,Foreachloop和變量
我有一個簡單的SQL任務。
SELECT Name, email FROM table_name
使用結果集,我想將它傳遞給一個變量,並用它與foreach循環發送一個電子郵件的任務,但我有沒有運氣得到這個工作。如果我只做一列,它工作正常。我的問題是多列。
感謝您的幫助提前。
我遇到問題,我不知道這是否可行。SSIS結果集,Foreachloop和變量
我有一個簡單的SQL任務。
SELECT Name, email FROM table_name
使用結果集,我想將它傳遞給一個變量,並用它與foreach循環發送一個電子郵件的任務,但我有沒有運氣得到這個工作。如果我只做一列,它工作正常。我的問題是多列。
感謝您的幫助提前。
我想出了我自己的問題。我會在這裏添加它以防別人遇到同樣的問題。
在SQL查詢中,第一列應該是您的關鍵結果。例如我的電子郵件。
在SQL任務下一般,設置結果集爲 「Full結果休息」
在SQL任務下結果集,以 「0」 設置變量結果名稱,爲電子郵件列創建一個變量作爲「對象」數據類型,然後單擊確定保存並退出。例如:email_Ob
通過轉到變量窗口,創建其它列作爲對象,因爲我正在使用此電子郵件任務,我需要從對象到字符串轉換更多的變量,所以我需要創建另一個變量作爲字符串爲每一個
實施例:
**Variable Name** **Datatype**
email_Ob Object
Name_Ob Object
email_St String
Name_St String
Foreach循環任務下收集變化如下:
枚舉:FOREACH ADO Enomator
ADO對象源變量:選擇的關鍵變量(email_Ob)
選擇在第一個表
Foreach循環任務行根據變量映射將變量添加到字符串數據類型與您的SQL查詢中的順序相同。點擊確定保存並退出。
現在,您可以添加電子郵件任務內Foreach循環,並使用這些字符串變量作爲電子郵件的一部分,或者你可以將其用於任何其他任務。
希望這個幫助,如果你有任何問題隨時問。這樣做,我可以根據需要添加更多列。
您的SQL任務結果集只需要一個Object變量。然後,您將它作爲ADO對象源變量,並將每個結果集列按索引映射到變量(email_St,name_St)等。 –
錯誤:分配給變量「User :: BaselineId」的值的類型不同當前的變量類型。變量在執行期間不能改變類型。變量類型是嚴格的,除了Object類型的變量。 – bilal
請詳細說明如何設置您的執行SQL任務,已聲明的變量及其數據類型以及您如何配置ForEach循環 – billinkc
SQL是OLE DB的「完整結果集」,結果名稱0,1映射到兩個變量User :: email和user :: Fullname。兩者都是「對象」數據類型。 Foreach循環設置爲ADO枚舉器,Source變量設置爲User :: email。 但在SQL任務上失敗時,我添加多個列 – user3112621
你得到的錯誤是什麼?當我創建類似的查詢並將其分配給結果集中的兩個變量時,我在執行SQL任務本身中出錯。 –