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即可!
转载请注明出处!
本文详细介绍使用SSIS工具通过Foreach循环容器批量导入多个Excel文件的方法,包括设置变量、配置连接管理器、数据类型转换及解决常见错误。

3604

被折叠的 条评论
为什么被折叠?



