• SSIS用7z.zip解压文件后导入数据库.(一)


    SSIS初学.给同学SSIS的一个参考.

    如题,先说下主要的要求如下:

    .有数据库DB里有TableA和TableB.A里有字段ClassID.B也有这个字段.

    .有二种不同类型的zip压缩文件A和B都在文件夹Dir下,但是这二种文档都分几个几种型别,如A1,A2,B1,B3;A1的ClassID全为1.A2的ClassID全为2.以此来推,A和B的文件里都命名里都有今天的日期.

    .其中对于A的处理如下,搜索文件夹Dir下,有没今天的文档.如果有,例如A1,那么先在DB里TableA先删除里ClassID为1的数据.然后把解压后的文件A1里的数据插入数据库表TableA,然后重复这个过程.

    .对于B和处理,只有一个不同,就是只要发现有今天的B文件.那么先删除TableB,然后导入所有今天B文档的资料.

    .最后就是备份文件夹Dir的所有zip文件到文件夹DirPak里,然后删除文件夹Dir的所有文件.

    上面的要求确认后,先想了下.此过程要求的变量差不多如下所示.

    其一,FileName是用来在文件夹Dir下遍历的文件名.

    其二,IsHaveData是用来表示是否插入过数据.作用后明

    其三,OutCommand是用来生成7z.zip所要解压文件的命令

    其四,OutFileName是用来表示解压后的文件后.

    其五,表示文件夹Dir的路径.

    那下面.我们开始先来完成对于B文件的处理.先来一个完整的,大家有个印象.

    那个我们来分析过程.

    首先,我们要遍历文件夹看是否今天的压缩文件.

    那么我们用个ForEach容器.如下设置.

    1.设置Enumerator是文件遍历.因为我们只要zip的压缩文档,在这里文件名取完整的,因为我要给7z解压是要绝对路径的.

    2.在Expressions(表达式)里设置要遍历的目录为上面文件夹Dir的路径SrcPath

    3.在参数对应里设置为FileName

    接下来.我们查询当前的文件是否是满足一定要求,这个是看需求的.在这里我们用指令码工作来完成.

    同样,先要设置相关的属性.主要是传进传出的参数.如下:传进去参数当然是当前的文件名.传出的包括7z解压的命令行和解压后的文件名.

    这完成后就是设计指令码,在VS2005里语言只能是VB的,我VB不会,但是一些简单和C#差不多.如下.

    可以看到很简单的.我就没做注解了.主要工作就是找有没满足要求文档.生成解压命令.生成解压文件名.里面的Dts.Variables("Plant")这行大家删除.这个流程没有用到这个.也没个这个变量,所以要删除.

    ..因为这个编辑的时候太长了不容易编辑,所以我就转下页接点说.

  • 相关阅读:
    学习记录6
    学习记录5
    学习记录4
    学习记录3&开启新的世界
    学习记录2
    学习记录1
    类、对象和包
    班会总结
    请简单描述一下,java程序的运行过程,以及java为什么能跨平台
    JDK、JRE、JVM的区别与关系
  • 原文地址:https://www.cnblogs.com/zhouxin/p/1597322.html
Copyright © 2020-2023  润新知