SQL Server 2008R2

SSIS_Foreach 循环容器_Foreach ADO.NET 架构行集枚举器(循环导入一个Excel所有工作簿)


1.本节主要是循环把工作簿Sheet1、Sheet2、Sheet3中的数据插入到数据库中。设计excel 表如下:





2.设计控制流,将添加3个数据源。



5.设计数据源【kk1】,右键【连接管理器】空白处,选择【新建ADO.NET连接】。

下拉提供程序,选择【Microsoft Jet 4.0 OLE DB Provider】,下面“数据库文件名”选择要导入的excel 文件。




6.选择左边的【全部】,在高级中,Extended  Properties 的值设为 【Excel 5.0】,测试成功,确定!



7.右键【新建连接】,选择【EXCEL】,选择excel的文件路径,确定完成!再创建一个【OLE DB 目标】目标数据源,将用于把数据插入到此库,创建过程不说了。



8.现在编辑【Foreach 循环容器】,在  [集合] 中选择【Foreach ADO.NET 架构行集枚举器】,数据源选择【kk1】,架构选择【表】



9.定义映射变量 myTable,类型为Sring。循环容器设计完成!



10. 双击【数据流任务】增加一个【Excel 源】和【OLE DB 目标】。


11. 编辑【Excel 源】,选择变量【User::myTable】。或者右键【Excel 源】—>【显示高级编辑器】选择变量设计。




12. 记得【OLE DB 目标】先创建目标数据库!



13. 完美运行!!结果如下:



启动 SSIS 包“Foreach.dtsx”。
信息: 0x4004300A,位于 数据流任务, SSIS.Pipeline: 正开始验证阶段。
信息: 0x4004300A,位于 数据流任务, SSIS.Pipeline: 正开始验证阶段。
信息: 0x40043006,位于 数据流任务, SSIS.Pipeline: 正开始执行阶段的准备工作。
信息: 0x40043007,位于 数据流任务, SSIS.Pipeline: 正开始执行之前阶段。
信息: 0x4004300C,位于 数据流任务, SSIS.Pipeline: 正开始执行阶段。
信息: 0x40043008,位于 数据流任务, SSIS.Pipeline: 正开始执行之后阶段。
信息: 0x4004300B,位于 数据流任务, SSIS.Pipeline: “组件“OLE DB 目标”(29)”已写入 3 行。
信息: 0x40043009,位于 数据流任务, SSIS.Pipeline: 正开始清除阶段。
信息: 0x4004300A,位于 数据流任务, SSIS.Pipeline: 正开始验证阶段。
信息: 0x40043006,位于 数据流任务, SSIS.Pipeline: 正开始执行阶段的准备工作。
信息: 0x40043007,位于 数据流任务, SSIS.Pipeline: 正开始执行之前阶段。
信息: 0x4004300C,位于 数据流任务, SSIS.Pipeline: 正开始执行阶段。
信息: 0x40043008,位于 数据流任务, SSIS.Pipeline: 正开始执行之后阶段。
信息: 0x4004300B,位于 数据流任务, SSIS.Pipeline: “组件“OLE DB 目标”(29)”已写入 3 行。
信息: 0x40043009,位于 数据流任务, SSIS.Pipeline: 正开始清除阶段。
信息: 0x4004300A,位于 数据流任务, SSIS.Pipeline: 正开始验证阶段。
信息: 0x40043006,位于 数据流任务, SSIS.Pipeline: 正开始执行阶段的准备工作。
信息: 0x40043007,位于 数据流任务, SSIS.Pipeline: 正开始执行之前阶段。
信息: 0x4004300C,位于 数据流任务, SSIS.Pipeline: 正开始执行阶段。
信息: 0x40043008,位于 数据流任务, SSIS.Pipeline: 正开始执行之后阶段。
信息: 0x4004300B,位于 数据流任务, SSIS.Pipeline: “组件“OLE DB 目标”(29)”已写入 3 行。
信息: 0x40043009,位于 数据流任务, SSIS.Pipeline: 正开始清除阶段。
SSIS 包“Foreach.dtsx”已完成: 成功。


Logo

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

更多推荐