re: SSIS http://en.wikipedia.org/wiki/SQL_Server_Integration_Services Foreach http://msdn.microsoft.com/en-us/library/ms141724.aspx带变量的循环任务:
我将其用于原始对象列表(例如字符串列表,如中讨论的)这个问题 https://stackoverflow.com/questions/3674364/how-to-use-list-collection-for-foreach-in-ssis)
但是如何配置 SSIS ForEach 任务来循环遍历List<Dog>
或数组Dog[]
where Dog
是一个像这样的简单对象:
public class Dog {
public string Name{ get; set;}
public string BestTrick{ get; set;}
}
可以说我想得到Name
and BestTrick
分成两个字符串循环变量以在循环内使用。
将变量映射到“变量映射”选项卡上的位置 0 和 1 似乎不起作用。
SSIS 中的 Foreach 循环用于迭代对象列表。因此,对于上面的示例,您有一个一维列表,List<Dog>
,作为循环的输入。要获取列表中的当前项目,您需要指定一个映射到索引 0 的变量。
如果你有一个二维列表,可以说List<Dog,Owner>
那么您可以通过将变量映射到索引 0 来检索当前的 Dog 对象,并通过映射到索引 1 来检索当前的 Owner。
一旦将当前对象放入变量中,您就可以通过在脚本任务中将其转换为适当的类型来获取其属性。在脚本里面你可以调用dog.Name
并将其保存到另一个变量以供其他组件使用。
这是脚本任务代码 (C#) 的示例,它从变量中检索狗对象,然后保存其Name
and BestTrick
到两个不同的变量。
public void Main()
Dog d = (Dog) Dts.Variables["Dog"].Value;
Dts.Variables["DogName"].Value = d.Name;
Dts.Variables["DogTrick"].Value = d.BestTrick;
}
请注意,您必须在其属性中让脚本任务知道您要编辑或读取的每个变量
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)