zoukankan      html  css  js  c++  java
  • 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

    本文原创,转载请联系作者本人

  • 相关阅读:
    RSA 与 DSA
    atlassian
    Cygwin
    windows下编写的Shell脚本在Linux下运行错误的解决方法
    NSKeyValueObserving(KVO)
    UIBezierPath 的使用介绍
    Objective
    Objective-C 内存管理原则
    Mac OSX 快捷键&命令行总览
    浅析Objective-C字面量
  • 原文地址:https://www.cnblogs.com/iPeterRex/p/8084835.html
Copyright © 2011-2022 走看看