BI SSIS应用系列之循环导入Excel文件
SSIS大多用来做数据扭转,所以必须有数据源和数据目标。上一章我们讲了最基本的数据导入,其实也是最基本的数据源到数据目标的过程。下面我们看看如何用SSIS循环导入Excel文件。 第一步:在控制流中添加【Foreach 循环容器】控件,并设置相关属性,属性设置见下图: 循环过程中必须有一个变量来接收文件路径,我们不用关心
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即可!
转载请注明出处!
更多推荐
所有评论(0)