`
123629996
  • 浏览: 298020 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

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

阅读更多

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

先要说下,这个东西要干什么,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中关于变量的使用

  • 大小: 7.6 KB
  • 大小: 15.3 KB
  • 大小: 24.1 KB
  • 大小: 12.9 KB
  • 大小: 9.4 KB
  • 大小: 16.5 KB
  • 大小: 14.3 KB
  • 大小: 14.9 KB
0
0
分享到:
评论
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"

相关推荐

    图解SSIS循环导入Excel工作表图解

    - 添加一个循环容器(Foreach Loop Container),用于遍历Excel文件中的所有工作表。 - 在循环编辑器中,配置Foreach File Enumerator,以遍历Excel文件中的所有工作表。 5. **变量映射**: - 创建一个变量来...

    Introduction to SSIS and Migration of DTS to SSIS

    - **Foreach Loop Container**: 遍历集合中的每个元素,如文件夹、文件或数据库记录,对每个元素执行一组任务。 **3. 控制流任务** 控制流任务是执行特定操作的单元,如启动另一个SSIS包、发送电子邮件、等待指定...

    Excel批量导入SSIS并将包发布到SQL Server

    2. **添加Foreach循环容器**:从工具箱中拖拽一个Foreach Loop Container到设计面板。 3. **配置容器**: - 编辑容器,设置遍历目录参数。例如,设置为`F:\Excel`,以便遍历该目录及其子目录中的所有Excel文件。 -...

    EXCEL批量导入SQL2005的方法

    4. **添加Foreach循环容器**:在工具箱中拖放Foreach Loop Container,用于遍历指定目录下的所有Excel文件。 5. **配置Foreach循环容器**:编辑容器,设置遍历目录(F:\excel及其子目录),并选择遍历文件类型为...

    SQL SERVER 2005 INTEGRATION SERVICES专家教程

    控制流由任务和容器构成,如"Execute SQL Task"用于执行SQL命令,"Foreach Loop Container"用于遍历集合。读者将学习如何构建灵活的控制流结构以满足不同业务需求。 SSIS还提供了一些高级功能,如错误处理、事务...

    Knight’s 24-Hour Trainer Microsoft SQL Server 2008 Integration Services

    包括序列容器(Sequence Containers)用于组织包内的任务流(Lesson 31)、循环容器(For Loop Containers)用于重复执行控制流任务(Lesson 32),以及使用Foreach Loop Container遍历对象集合(Lesson 33)。...

Global site tag (gtag.js) - Google Analytics