在上一个随笔中我们处理了一个010305c.dat文件,如果在一个文件夹中有多个dat文件应该怎么办呢? 这里就需要使用Foreach Loop container任务来循环处理文件,这个需要使用多个dat文件。

  

循环

首选对路径C:\SSISDemos下的所有.DAT文件进行循环操作并下载到数据库中。使用Foreach Loop循环执行操作。这里还在上随笔的Package里拖放一个Foreach Loop Container,重命名为Loop Through Files。

双击打开边界界面,点击打开Collection标签界面,可以看到Enumerator栏内默认选择Foreach File Enumerator,但是需要点击打开下拉列表框重新选择Foreach File Enumerator,然后在Folder栏傍边点击Browser选择目录C:\SSISDemos,Files栏内输入如图5-15

图5-15

现在需要设置Foreach File Eumeration中的变量。点击Variable Mappings标签界面在Variable下拉列表框中选择<New Variable…>,打开Add Variable对话框。为这个任务指定变量使用范围。为变量命名为ExtractFileName,其他设置保持默认,点击OK退出编辑界面。

  

 设置动态package

循环操作创建之后,需要在ConnectionManager中设置文件名和循环操作中产生的文件名一致。右击我们先前创建的Corporation Extract选择属性,在属性面板中点击Expressions对应的按钮。

打开Expressions Editor在Property下拉列表框中选择ConnectionString,如图5-16,可以直接在Expression中输入@[User::ExtractFileName]或者点击Expression栏中的按钮将这个变量拖放到表格中。如果输入变量要保证和Foreach Loop中设置的变量一致。

图5-16

设置完成之后属性如图5-17

图5-17

这样每次在C:\SSISDemos路径下查找到一个.DAT文件,ExtractFileName变量将被设置为带路径的文件名,这样这个Package会对每个.DAT文件进行处理。

现在我们遗漏的一个地方是将文件数据导入到数据库之后还没有把文件归档,首先在C:\SSISDemos目录下新建一个子文件夹C:\SSISDemos\Archive。在Connection Manager下右击新建一个文件链接,Usage Type选择Existing Folder,然后点击下方Browser指向C:\SSISDemos\Archive,点击OK并重命名为Archive File。

然后再Loop Through Files内拖放一个File System任务并重命名为Archive File,使用绿色箭头把它和Loop Corporate Data连接起来,重命名为Archive File。

双击Archive File打开编辑界面如图5-17,设置Operation选项为Move File,很明显这个意思就是将文件复制到目的文件夹内,这个属性还有很多的选择项,可以根据意思揣度出来是要进行什么操作。Destination设置为新建的Archive File连接,SourceConnection设置为Corporation Extract连接。最后整个Package首先抽取文件中的数据然后将文件转移到指定的路径内。

图5-17

现在可以运行整个Package,点击保存,运行,最后运行成功之后的Package如图5-18。

图5-18

  

【创建SSIS包】总结

这一节主要了解基本的SSIS转换,任务,容器。我们建立了一个完整的Package并将错误信息记录下来,然后把它放在一个循环中,找到每一个.DAT文件,将文件中的数据导入到数据库中,最后将文件放到另外一个目录中。下面的文章中将介绍更加复杂的ETL任务。

创建SSIS包—循环和动态package相关推荐

  1. SSIS_创建SSIS包和数据源

    包是SSIS的核心对象.一个包包含控制流.数据流和连接.控制流由一些工作流元素构成,这些元素或许是执行SQL任务.数据流任务,FTP任务等.数据流主要用来实现商业逻辑,如ETL.连接包括数据源和数据目 ...

  2. 创建SSIS包—建立端到端的package

    通过基本task和transforms的学习,现在可以转入到SSIS实际应用.建立端到端的package这个系列中首先讲解将一系列的文件数据导入到SQL Server中的方法,然后添加一些复杂转换,最 ...

  3. 使用SSIS包导入SQL Server FILESTREAM数据

    初始配置 (Initial configuration) We have been exploring the SQL Server FILESTREAM feature in this ongoin ...

  4. 图解:SQL Server SSIS包和job的部署攻略

    http://www.cnblogs.com/arwutang/archive/2011/09/12/2174003.html 以下将建立一个SQL Server SSIS包然后在job中使用这个包, ...

  5. ssis 包_SSIS包中的错误处理概述

    ssis 包 This article explains the process of configuring Error handling in SSIS package. 本文介绍了在SSIS程序 ...

  6. aws rds监控慢sql_在AWS RDS SQL Server上使用SSIS包

    aws rds监控慢sql In the first part of the article, Explore SQL Server Integration Services (SSIS) on AW ...

  7. ssis 导入excel_使用SSIS包将MS Excel数据导入数据库

    ssis 导入excel The easiest way to import the data into the SQL database is using the Import Data wizar ...

  8. ssis for循环容器_SSIS包中的序列容器

    ssis for循环容器 This article explores the Sequence container in SSIS package with examples. 本文通过示例探索了SS ...

  9. 在运行SSIS包时,如何动态更新变量值

    实现方式: 若要动态更新变量,可以为变量创建配置,将这些配置部署到包中,然后在部署包时更新配置文件中的变量值.这样,在运行时,包就可以使用更新后的变量值. 下面通过一个简单的例子来说明如何实现动态更新 ...

最新文章

  1. 互联网大厂面试,谈索引就直逼这些底层?难的是我不懂这些原理
  2. 谁来护航储能电池安全?
  3. 非常有用的15个Linux 服务器监控命令
  4. modnet是一个无需绿幕,扣人像,笔记本上跑到10-20帧
  5. 如何用Endnote在论文中插入图片
  6. oracle表空间可以迁移,Oracle 表空间迁移
  7. springBoot中自定义的yml文件引用的方式
  8. Redis配置文件配置
  9. 暑期训练日志----2018.8.22
  10. 信安教程第二版-第18章网络安全测评技术与标准
  11. webpack项目搭建
  12. Switch case 超经典练习题
  13. 鼠标显示效果的形状设置
  14. python的浮点数_python 浮点数 转 整数python函数每日一讲 - all()
  15. 鲜花销售管理系统jsp全部代码_[内附完整源码和文档] 基于JSP网上花店销售系统的设计与实现...
  16. php 豆瓣抓取,PHP抓取豆瓣读书爬虫代码
  17. php 处理eml,php读取eml实例、php解析eml、eml解析成网页
  18. c语言解惑 指针 数组 函数和多文件编程,C语言解惑 指针、数组、函数和多文件编程...
  19. Pandas熊猫框架
  20. 微信支付宝刷脸支付竞争已经枕戈待旦

热门文章

  1. NRF52832与W25Q80通信
  2. SSM-Spring-19:Spring中JdbcTemplate
  3. docker容器-实战(分享十六)
  4. [HNOI2008]遥远的行星
  5. python类的继承--------类的基础(四)
  6. mysql索引总结----mysql 索引类型以及创建
  7. Matlab计算两集合间的海明距离
  8. 安卓端网页浏览过程中实时更新title的web实现
  9. 10个让你获得最新设计理念的网站
  10. 几种filter的比较