zoukankan      html  css  js  c++  java
  • SSIS 容器

    容器(Container)是控制流的特殊的任务(Task),它为一个或多个Task提供逻辑组合,可以实现工作流的重复执行和顺序执行,还可以把变量和事件处理程序的作用域缩小到容器中。不能在容器内的Task和容器外的Task之间创建优先约束,一旦把Task存放到容器内,那么只能创建容器的优先约束。SSIS包含四种类型的容器:任务宿主容器,序列容器,For循环容器和Foreach循环容器。任务宿主容器是默认容器,每个Task默认都属于该容器,并只能在SSIS后台使用。

    一,序列容器

    序列容器负责处理容器内的工作流,并能把Package划分为更容易管理的分组,一般来说,使用容器来实现:

    • 序列容器可以把变量的作用域缩小到容器内;
    • 在单个容器内创建事件处理程序,如果容器内的任何Task失败,可以触发事件处理程序;
    • 确保在执行下一个Task之前,容器内的多个Task被成功执行。

     容器内的Task可以单独执行,这使得容器很像一个子Package。

    二,For容器

    For循环容器类似于编程语言中的For循环结构,在循环开始前,For容器计算一个初始值,并评估(Evaluate)初始值是否满足条件,如果满足条件,开始第一轮循环。

    进入后续的循环时,For容器都计算一个迭代变量,并评估(Evaluate)迭代变量的值是否满足条件,如果满足条件,继续循环;如果不满足条件,结束循环。

    For循环容器的循环属性:

    • InitExpression :提供初始化该循环所用值的表达式(可选),该属性会覆盖变量的初始值。
    • EvalExpression :提供用于计算循环应停止还是继续的表达式。
    • AssignExpression :提供在每次循环重复时更改条件的表达式(可选)。

    在使用For循环容器之前,需要创建用于迭代的变量,而迭代变量的初始值,可以通过变量来赋值,也可以通过InitExpression 属性来赋值:

    设置For 循环容器的属性,设置迭代变量的初始值,评估表达式和更新循环条件:

    For循环容器内的Task可以修改迭代变量的值。

    三,Foreach循环容器

    Foreach循环容器是一种功能强大的循环结构,其循环的实现类似于编程语言中的Foreach循环结构,用于遍历一个对象集合。

    Foreach循环容器有8种枚举器,分别是:

    • Foreach File Enumerator
    • Foreach Item Enumerator
    • Foreach ADO Enumerator
    • Foreach ADO.NET Schema Rowset Enumerator
    • Foreach From Variable Enumerator
    • Foreach NodeList Enumerator
    • Foreach SMO Enumerator

    常用的枚举器是前三个,通过这些枚举器,用户可以遍历集合的所有元素,通过Foreach循环容器获取的是集合中的元素。用于可以通过Foreach循环编辑器来设置枚举器的类型:

    下文逐个介绍常用的枚举器及其用法。

    1,遍历文件

    当需要遍历指定目录下的所有文件时,可以选择Foreach File Enumerator,配置枚举器

    • Folder:用于指定遍历目录的路径,
    • Files:用于指定文件名的模式,* 表示任意字符
    • Retrieve file name:用于指定获取的文件名的格式
    • Traverse subfolders:是否遍历子目录

    配置完枚举器之后,需要在变量映射中,设置变量来接收每一次循环获取的文件名称:

    Foreach循环容器会遍历目录 D:ShareFolder 中的所有txt文件,然后,把获取的文件名赋值给变量User::FileName。

    2,遍历列表

    当需要遍历特定集合中的所有子项时,可以选择Foreach Item Enumerator枚举器,通过Columns按钮定义枚举器的列和数据类型:

    在枚举器配置界面,输入集合的元素:

     设置变量来接收枚举器中的元素:

    3,遍历ADO集合对象

    SSIS使用Execute SQL Task来返回ADO集合对象,然后使用Foreach ADO Enumerator枚举器来遍历集合中的所有元素。

    首先,创建Object类型的变量: 

     

    其次,配置Execute SQL Task,设置Execute SQL Task返回的结果集,类型为Full result set,

    设置接收结果集的变量,也就是建立结果集和变量之间的映射:

    最后,配置Foreach循环容器,设置ADO枚举器的源是Object类型的变量:

    在枚举器中建立枚举器的返回值和变量之间的映射,用于接收ADO对象中的行,Index代表列的序号,0代表第一列。

     

    四,组

    实际上,组并不是容器,而仅仅是把Task集合到一起,组用于对Task进行UI上的分割,以满足审美需要。

  • 相关阅读:
    过滤选择器——简单过滤选择器
    层次选择器
    选择器——2——基本选择器
    This is a secret
    iframe加载问题
    懒加载
    biubiubiu
    使用JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength属性
    HTML中       等6种空白空格的区别
    ASP.NET 4.0的ClientIDMode属性
  • 原文地址:https://www.cnblogs.com/ljhdo/p/5788798.html
Copyright © 2011-2022 走看看