SSIS中循环遍历组件[Foreach Loop Container]
背景
每月給業務部門提取數據,每個分公司都要提取一般,先跑SQL,再粘貼到Excel中,然后發郵件給相關的人員。費時費力,還容易粘貼錯位。因此,需要通過一個程序完成這些步驟。我首先想到的是通過SSIS完成這些工作:包括三步。第一,提取數據并生成各個分公司的Excel文件;第二,壓縮文件;第三步,發送郵件。
由于對SSIS并不熟練,看過網上一些文章并自己琢磨后,提煉出一些相關的功能。希望本文能夠對工作中的你有所幫助。
目的
學習SSIS中的遍歷組件。實例:生成對應分公司的Excel文件,每個分公司生成一個文件。
思路與具體操作
1. 從機構表[branch]中找到二級機構,找到分公司所寫代碼屬性abbrCode。遍歷這個表,及需要遍歷的集合為select abbrCode from branch where branchLevel=2
branch表結構
| 字段 | 類型 | 描述 |
| Id | Int | 自增長ID |
| branchName | Varchar(50) | 機構名稱 |
| abbrCode | Varchar(20) | 分公司名稱縮寫 |
| branchLevel | Int | 機構層級 |
| parented | Int | 父節點 |
2. 根據模板文件[GABonus.xls],通過遍歷二級機構列表生成GABonus[BJ|GD|SH|…].xls的文件。文件名規則:以GABonus開頭+分公司名稱縮寫
?
SSIS圖
?
?
步驟
1. 建立SQL查詢,“Excecute SQL Task”組件配置
?
?
2. 配置[Foreach Loop Container]控件
3. 配置Script Task 組件
?
腳本
1 Imports System 2 Imports System.Data 3 Imports System.Math 4 Imports Microsoft.SqlServer.Dts.Runtime 5 6 Public Class ScriptMain 7 Public Sub Main() 8 Dts.Variables("newFileName").Value = "D:\GABonus" + Dts.Variables("newCodeString").Value.ToString() + ".xls" 9 Dts.TaskResult = Dts.Results.Success 10 End Sub 11 End Class?
本文原創,轉載請聯系作者本人
轉載于:https://www.cnblogs.com/iPeterRex/p/8084835.html
總結
以上是生活随笔為你收集整理的SSIS中循环遍历组件[Foreach Loop Container]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java错误:The superclas
- 下一篇: filebeat相关registry文件