SSIS大多用来做数据扭转,所以必须有数据源和数据目标。上一章我们讲了最基本的数据导入,其实也是最基本的数据源到数据目标的过程。下面我们看看如何用SSIS循环导入Excel文件。

        第一步:在控制流中添加【Foreach 循环容器】控件,并设置相关属性,属性设置见下图:

         

       

        循环过程中必须有一个变量来接收文件路径,我们不用关心它是如何给变量赋值的,变量的设置如下图:

         

 

        第二步:添加数据流任务;在【Foreach 循环容器】里面添加一个【数据流任务】控件,双击该控件进入数据流任务中:

          

 

        双击【Excel 源】控件进行编辑,在弹出窗口中新建OLE DB连接管理器:

         

 

         

 

          第三步:设置Excel连接管理器表达式;也就是把前面循环时的变量赋值给Excel连接管理器的ExcelFilePath属性,如下:

         

 

         

 

          下面的User::FilePath就是前面建的变量名:

         

 

          第四步:字段数据类型转换;当我们添加目标源,配置好目标连接和映射后(不知道怎么配置的见上一章),F5运行后发现并不能导入数据,报的错误如下:

         

 

         看第一句我们就知道,这是因为Name字段在Excel中的数据类型和数据库中不一样导致的错误,我们只需要用一个数据转换控件转换一下就行了,如下:

         

 

         双击数据转换控件进行编辑,这里有一个问题,我们的目的是将类型转换成和数据库里的类型一样,数据库里是Varchar类型,那SSIS里的数据类型哪一个才是和Varchar对应的呢?点开数据类型下拉框,我们发现这些类型都不是我们所熟悉的,SSIS有它专用的数据类型,至于它是如何和数据里的类型对应的,大家可以去网上找一下,不过,我们这里就不用关心它是如何对应的,有一个办法可以让我们知道该转换成什么类型的数据,就是在【OLE DB 目标】控件上右键=>【显示高级编辑器】,具体看下面的图解:

           

           

       

          数据转换完成后,记得在目标映射中改下输入字段:

           

 

            到此基本完成,但F5运行依然报错:

           

 

            这个问题是因为变量路径在验证的时候导致的,我们改个属性即可,不贴图了,直接文字说明:控制流空白区右键=>属性=>DelayValidation设置为True即可!

 

            转载请注明出处!

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐