使用SSIS解压缩文件

时间:2014-04-22 18:20:29

标签: sql csv ssis zip

我有一个.zip文件来自Web服务,该文件每月通过电子邮件将文件发送到电子邮件地址。电子邮件具有脚本宏,可将.zip文件删除到特定文件夹中。

我需要的是一个解压缩此文件的SSIS包,保存单个内部文档(也需要重命名的.csv文件),然后处理我放在一起的转换包。

最后,我还需要将.zip文件移动到特定文件夹。

我确定foreach循环容器参与其中,但就我而言。

我浏览了网络,发现了几种方法,但我想避免使用C#,因为我还不熟悉这种语言。

FileName:HRIS_LMSUtilization_532_04_22_2014_15_22.zip 内部文件:HRIS_LMSUtilization_532_04_22_2014_15_22.csv(需要将其重命名为HRIS_LMSUtilization.csv)

服务器上的文件路径:E:\ DATABASES \ DATAWAREHOUSE \ UNIVERSAL_DW \ HRIS \ HRIS_EEIMPORT \ 这是.zip文件所在的位置以及解压缩文件所需的位置。

存档文件:E:\ DATABASES \ DATAWAREHOUSE \ UNIVERSAL_DW \ HRIS \ HRIS_EEIMPORT \ ARCHIVED \ 这是在提取内部文件后需要转换.zip文件的位置。

感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

如果您希望进程检查特定文件夹,然后对每个文件执行操作(解压缩,加载,移动文件),那么您对@achach循环容器是正确的。

在foreach循环中,将枚举器设置为' Foreach File Enumerator'并指定文件夹和文件掩码(在您的情况下可能是HRIS_LMSUtilization _ * .zip)。在"变量映射"创建一个变量(User :: file_name),它将在循环的每次迭代中存储文件名。

在foreach循环的范围内,您需要连线:

  1. 解压缩和重命名文件的任务...您可能需要使用可以访问命令行的任务来进行解压缩,除非您有自定义的zip任务,例如CozyRoc中的任务。
  2. 您需要对文件执行哪些处理任务(为此提及另一个包)。
  3. 将文件移至" E:\ DATABASES \ DATAWAREHOUSE \ UNIVERSAL_DW \ HRIS \ HRIS_EEIMPORT \ ARCHIVED \"
  4. 的文件系统任务

    似乎没有必要使用C#来完成您所寻找的声音。

答案 1 :(得分:0)

要解压缩,您可以使用执行批处理文件或解压缩工具的执行流程任务,或者您可以使用第三方任务(免费或商业):

http://microsoft-ssis.blogspot.com/2012/10/custom-ssis-component-unzip-task.html http://www.cozyroc.com/ssis/zip-task enter image description here