SSIS中Foreach Loop Container的使用--遍历结果集
?在之前的文章中介绍过SSIS中变量的使用,其中用到result set这个东西,当时设置成了single row,那是我们只需要那一个数据,当我们需要多个数据的时候我们就需要将result set 设置为Full result set,先来个整体效果,再说明下:
先要说下,这个东西要干什么,PONumber中先查询一个数据库,找出我们需要的数据,由于是多条,最后传给foreach loop container处理,foreach loop container将结果集的数据遍历出来然后在replace PONumber at..中重新拼装SQL语句,完成后在clear Pomst中执行清理工作。
首先我们看PONumber的处理:
?这里的User:POMST_PONumber中也是一个有变量的sql语句,前面有一个script task 组件来处理
?这里就要注意下存结果集的变量类型是Object,结果集名称是0不是o,哈哈
?这就是foreach loop container组件,注意图中标明的选项
?这里的PoNumber就相当于临时存放数据的变量,每次遍历都会存入新值。
?看看代码吧
?注意圈的地方就ok了
?执行正常的SQL,到此这个过程就完了,估计都没看明白,哈哈。。。,再次总结下:之所以是这样做,是因为最终想要执行的SQL中的参数是来自另外一个库的。比如要在MS——sqlserver中执行,而需要的一个参数来自oracle库,所以就需要多绕几次,先将oracle的数据库中的数据查出来存入变量,再将变量的值置换到sqlserver的SQL语句中,不知道说明白了么。。。,you can refer my another blog : ssis中关于变量的使用