首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

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

2012-12-24 
SSIS中Foreach Loop Container的使用--遍历结果集?在之前的文章中介绍过SSIS中变量的使用,其中用到result

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

?在之前的文章中介绍过SSIS中变量的使用,其中用到result set这个东西,当时设置成了single row,那是我们只需要那一个数据,当我们需要多个数据的时候我们就需要将result set 设置为Full result set,先来个整体效果,再说明下:

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

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

首先我们看PONumber的处理:


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


SSIS中Foreach Loop Container的运用-遍历结果集
?这里就要注意下存结果集的变量类型是Object,结果集名称是0不是o,哈哈


SSIS中Foreach Loop Container的运用-遍历结果集
?这就是foreach loop container组件,注意图中标明的选项


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


SSIS中Foreach Loop Container的运用-遍历结果集
?看看代码吧


SSIS中Foreach Loop Container的运用-遍历结果集
?注意圈的地方就ok了


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

1 楼 solen 2012-08-24   可以在 foreach 的属性里面设置表达式

在foreach 循环编辑器的"集合"项中, 可以选择枚举器的类型, 下面有一个"Expressions", 单击右边的"..."进入表达式编辑器
设置Directory属性的表达式为:
"C:\\config\"
+ SUBSTRING((DT_WSTR,5)(10000 + YEAR(GETDATE())), 2, 4)
+ SUBSTRING((DT_WSTR,3)(100 + MONTH(GETDATE())), 2, 2)
+ SUBSTRING((DT_WSTR,3)(100 + DAY(GETDATE())), 2, 2)

设置FileSpec属性的表达式为
SUBSTRING((DT_WSTR,5)(10000 + YEAR(GETDATE())), 2, 4)
+ SUBSTRING((DT_WSTR,3)(100 + MONTH(GETDATE())), 2, 2)
+ SUBSTRING((DT_WSTR,3)(100 + DAY(GETDATE())), 2, 2)
+ "*.csv"

热点排行