我遇到问题,我不知道这是否可行。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任务本身中出错。 –