sql - SSIS 结果集、Foreachloop 和变量

标签 sql variables ssis resultset foreach-loop-container

我遇到了问题,我不知道这是否可行。

我有一个简单的 SQL 任务。

从 table_name 中选择姓名、电子邮件

使用结果集,我尝试将其传递给变量并在带有 foreach 循环的电子邮件任务中使用它,但我没有运气让它工作。如果我只做一栏,效果很好。我的问题是多列。

感谢您提前提供的帮助。

最佳答案

我想出了我自己的问题。我会在这里添加它,以防其他人遇到同样的问题。

  1. 在 SQL 查询中,第一列应该是您的关键结果。例如我的是电子邮件。

  2. 常规下的SQL任务中,将结果集设置为“完整结果剩余”

  3. 结果集下的SQL任务中,设置结果名称为“0”的变量,为电子邮件创建一个“对象”数据类型的变量列并单击“确定”保存并退出。示例:email_Ob

  4. 通过转到变量窗口,为其他列创建更多变量作为对象,因为我将其用于电子邮件任务,所以我需要从对象转换为字符串,所以我需要为每个创建另一个变量作为字符串

    示例:

           **Variable Name**       **Datatype**
               email_Ob                Object
               Name_Ob                 Object
               email_St                String
               Name_St                 String
    
  5. Foreach 循环任务集合下更改以下内容:

    枚举器:Foreach ADO Enomator

    ADO对象源变量:选择关键变量(email_Ob)

    选择第一个表中的行

  6. Foreach 循环任务变量映射下添加字符串数据类型的变量,其顺序与 SQL 查询中的顺序相同。单击“确定”保存并退出。

  7. 现在,您可以在 Foreach 循环 中添加电子邮件任务,并将这些字符串变量用作电子邮件的一部分,或者您也可以将其用于任何其他任务。

希望这对您有所帮助,如果您有任何疑问,请随时询问。通过这种方式,我可以根据需要添加更多列。

关于sql - SSIS 结果集、Foreachloop 和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20643081/

相关文章:

sql - 如何在postgres中将记录集转换为json数组

javascript - 如何使用 JavaScript 映射添加变量的先前值

php INSERT 到变量名 MySQL 的列

matlab - 根据可变数量的输入捕获所有可能的输出。

sql-server - SSIS - 再次出现内存不足错误

ssis - SSIS:OnPostExecute OnError问题

sql - 列出所有外键 PostgreSQL

mysql - 如何在不在 SQL 中创建重复行的情况下进行更新?

sql-server - 找不到 SSISDB 并且无法在 SQL Server 2012 中创建新目录

mysql - 在 MySQL 中查询不返回任何行