一:实例步骤操作。(不是硬编码,通过config文件实现)
创建映射到 Directory 属性的新的包级别变量
-
在 SSIS 设计器中,单击“控制流”选项卡的背景。这会将要创建的变量的作用域设置为包。
-
在 SSIS 菜单中,选择“变量”。
-
在“变量”窗口中,单击“添加变量”图标。
-
在“名称”框中,键入 varFolderName。
重要提示变量名称区分大小写。
-
验证“作用域”框是否显示了包的名称 Lesson 3。
-
将 varFolderName 变量的“数据类型”框的值设置为“字符串”。
-
返回到“控制流”选项卡,并双击“文件夹中的 Foreach 文件”容器。
-
在 Foreach 循环编辑器的“集合”页中,单击“表达式”,再单击省略号按钮 (…)。
-
在“属性表达式编辑器”中,单击“属性”列表,并选择“目录”。
-
在“表达式”框中,单击省略号按钮 (…)。
-
在“表达式生成器”中,展开“变量”文件夹,并将变量 User::varFolderName 拖动到“表达式”框中。
-
单击“确定”退出表达式生成器。
-
单击“确定”退出属性表达式编辑器。
启用包配置
-
在 SSIS 设计器中,单击“控制流”选项卡的背景。
-
在 SSIS 菜单上,单击“包配置”。
-
在“包配置组织程序”对话框中,选择“启用包配置”,再单击“添加”。
-
在包配置向导的欢迎页中,单击“下一步”。
-
在“选择配置类型”页上,验证“配置类型”是否已设置为“XML 配置文件”。
-
在“选择配置类型”页中,单击“浏览”。
-
默认情况下,“选择配置文件位置”对话框将打开至项目文件夹。
-
在“选择配置文件位置”对话框的“文件名”中,键入 SSISTutorial,再单击“保存”。
-
在“选择配置类型”页中,单击“下一步”。
-
在“选择要导出的属性”页中的“对象”窗格中,展开“变量”,展开 varFolderName,展开“属性”,再选择“值”。
-
在“选择要导出的属性”页中,单击“下一步”。
-
在“完成向导”页中,键入该配置的配置名称,如 SSIS Tutorial Directory configuration。这是显示在“包配置组织程序”对话框中的配置名称。
-
单击“完成”。
-
单击“关闭”。
-
向导将创建名为 SSISTutorial.dtsConfig 的配置文件,该文件包含特定变量的 value 的配置设置,此变量用于设置枚举器的 Directory 属性。
注意配置文件通常包含有关包属性的复杂信息,但对于本教程,唯一的信息应当是 [User::varFolderName].Properties[Value]。
创建并填充新的示例数据文件夹
-
在 Windows 资源管理器中,在驱动器的根位置(例如,C:\)创建名为 New Sample Data 的新文件夹。
-
打开 c:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data 文件夹,然后复制该文件夹中的任意三个示例文件。
-
在 New Sample Data 文件夹中,粘贴所复制的文件。
以上参考:http://msdn.microsoft.com/zh-cn/library/ms166598(v=sql.105)
Summerize:
实例中的package实现了directory的映射,通过执行包可以看到变量的变化。此包用了两个变量接收参数,directory的接收变量时一次的读取directory,然后循环获取directory下的文件,把文件跟path拼接一起传给第二个变量,然后在file中读取第二个变量,得到路径下的文件执行。
配置文件中一定要给出path:<ConfiguredValue>C:\Users\mark_zhang03\Desktop\DataMart\foreach_config</ConfiguredValue>。才能实现动态改变。
其实也可以用一个变量来循环实现,一次性的获取文件。
与以上的区别就是,directory能只一次的获取路径,然后就只循环路径下的文件而已。但第二种实现方法是连路径带文件一起循环读取了。两种方法区别不大。
浙公网安备 33010602011771号