SSIS中循环遍历组件[Foreach Loop Container]
背景
每月給業(yè)務(wù)部門提取數(shù)據(jù),每個分公司都要提取一般,先跑SQL,再粘貼到Excel中,然后發(fā)郵件給相關(guān)的人員。費時費力,還容易粘貼錯位。因此,需要通過一個程序完成這些步驟。我首先想到的是通過SSIS完成這些工作:包括三步。第一,提取數(shù)據(jù)并生成各個分公司的Excel文件;第二,壓縮文件;第三步,發(fā)送郵件。
由于對SSIS并不熟練,看過網(wǎng)上一些文章并自己琢磨后,提煉出一些相關(guān)的功能。希望本文能夠?qū)ぷ髦械哪阌兴鶐椭?/p>
目的
學(xué)習(xí)SSIS中的遍歷組件。實例:生成對應(yīng)分公司的Excel文件,每個分公司生成一個文件。
思路與具體操作
1. 從機構(gòu)表[branch]中找到二級機構(gòu),找到分公司所寫代碼屬性abbrCode。遍歷這個表,及需要遍歷的集合為select abbrCode from branch where branchLevel=2
branch表結(jié)構(gòu)
| 字段 | 類型 | 描述 |
| Id | Int | 自增長ID |
| branchName | Varchar(50) | 機構(gòu)名稱 |
| abbrCode | Varchar(20) | 分公司名稱縮寫 |
| branchLevel | Int | 機構(gòu)層級 |
| parented | Int | 父節(jié)點 |
2. 根據(jù)模板文件[GABonus.xls],通過遍歷二級機構(gòu)列表生成GABonus[BJ|GD|SH|…].xls的文件。文件名規(guī)則:以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?
本文原創(chuàng),轉(zhuǎn)載請聯(lián)系作者本人
轉(zhuǎn)載于:https://www.cnblogs.com/iPeterRex/p/8084835.html
總結(jié)
以上是生活随笔為你收集整理的SSIS中循环遍历组件[Foreach Loop Container]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java错误:The superclas
- 下一篇: filebeat相关registry文件