我遇到了问题,我不知道这是否可行。
我有一个简单的 SQL 任务。
从 table_name 中选择姓名、电子邮件
使用结果集,我尝试将其传递给变量并在带有 foreach 循环的电子邮件任务中使用它,但我没有运气让它工作。如果我只做一栏,效果很好。我的问题是多列。
感谢您提前提供的帮助。
最佳答案
我想出了我自己的问题。我会在这里添加它,以防其他人遇到同样的问题。
在 SQL 查询中,第一列应该是您的关键结果。例如我的是电子邮件。
在常规下的SQL任务中,将结果集设置为“完整结果剩余”
在结果集下的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 - SSIS 结果集、Foreachloop 和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20643081/