SSIS中Foreach Loop Container的使用--遍历结果集

 在之前的文章中介绍过SSIS中变量的使用,其中用到result set这个东西,当时设置成了single row,那是我们只需要那一个数据,当我们需要多个数据的时候我们就需要将result set 设置为Full result set,先来个整体效果,再说明下:手机充值:http://yjck67.taobao.com,自己的小店

SSIS中Foreach Loop Container的使用--遍历结果集_第1张图片

先要说下,这个东西要干什么,PONumber中先查询一个数据库,找出我们需要的数据,由于是多条,最后传给foreach loop container处理,foreach loop container将结果集的数据遍历出来然后在replace PONumber at..中重新拼装SQL语句,完成后在clear Pomst中执行清理工作。

首先我们看PONumber的处理:


SSIS中Foreach Loop Container的使用--遍历结果集_第2张图片
 这里的User:POMST_PONumber中也是一个有变量的sql语句,前面有一个script task 组件来处理


SSIS中Foreach Loop Container的使用--遍历结果集_第3张图片
 这里就要注意下存结果集的变量类型是Object,结果集名称是0不是o,哈哈


SSIS中Foreach Loop Container的使用--遍历结果集_第4张图片
 这就是foreach loop container组件,注意图中标明的选项


SSIS中Foreach Loop Container的使用--遍历结果集_第5张图片
 这里的PoNumber就相当于临时存放数据的变量,每次遍历都会存入新值。


SSIS中Foreach Loop Container的使用--遍历结果集_第6张图片
 看看代码吧


SSIS中Foreach Loop Container的使用--遍历结果集_第7张图片
 注意圈的地方就ok了


SSIS中Foreach Loop Container的使用--遍历结果集_第8张图片
 执行正常的SQL,到此这个过程就完了,估计都没看明白,哈哈。。。,再次总结下:之所以是这样做,是因为最终想要执行的SQL中的参数是来自另外一个库的。比如要在MS——sqlserver中执行,而需要的一个参数来自oracle库,所以就需要多绕几次,先将oracle的数据库中的数据查出来存入变量,再将变量的值置换到sqlserver的SQL语句中,不知道说明白了么。。。,you can refer my another blog : ssis中关于变量的使用

你可能感兴趣的:(microsoft相关)