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 组件

脚本
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime Public Class ScriptMain
Public Sub Main()
Dts.Variables("newFileName").Value = "D:\GABonus" + Dts.Variables("newCodeString").Value.ToString() + ".xls"
Dts.TaskResult = Dts.Results.Success
End Sub
End Class
本文原创,转载请联系作者本人
SSIS中循环遍历组件[Foreach Loop Container]的更多相关文章
- SSIS: 如何通过SSIS的Foreach Loop Container导入Excel的多个Sheet
通常都有这样一个习惯就是按月存放我们的一些数据,一个月份一个work sheet,他们具有相同的行列组合,假设有下面这样一个Excel,每页结构如下,共有四页,每页为一个季度 那么我们需要做的是: 1 ...
- JAVA中循环遍历list有三种方式
转自:https://blog.csdn.net/changjizhi1212/article/details/81036509JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常 ...
- 手写js代码(一)javascript数组循环遍历之forEach
注:原文地址http://blog.csdn.net/oscar999/article/details/8671546 我这里是仿照学习! 1.js的数组循环遍历 ①数组的遍历首先想到的是for()循 ...
- TP中循环遍历
循环遍历(重点) 在ThinkPHP中系统提供了2个标签来实现数组在模版中的遍历: volist标签.foreach标签. Volist语法格式: Foreach语法格式: 从上述的语法格式发现vol ...
- JavaScript数组循环遍历之forEach
1. js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的方式了. 除此之外,也可以使用较简便的forEach 方式 2. forEac ...
- 关于js中循环遍历中顺序执行ajax的问题(vue)
js里的循环,每次都是自顾自的走,它不等ajax执行好走完到success代码,就继续循环下一条数据了,这样数据就全乱了. 后来,想到试试ajax里async这个属性,async默认是true,即为异 ...
- Oracle 函数 “申请通过后,将该表中循环遍历到的所有内容插到另一个表中”
create or replace function mcode_apply_insert_material(p_mca_no VARCHAR2, p_action VARCHAR2, p_wf_no ...
- PHP中循环结构之foreach循环语句
在PHP中foreach循环语句,常用于遍历数组,一般有两种使用方式:不取下标.取下标. (1)只取值,不取下标 <?php foreach (数组 as 值){ //执行的任务 } ?> ...
- 反射在ADO.NET中的运用(你还在每个项目中循环遍历DataTable吗)
图片有点大哈,但大更能说明问题.您是不是每个项目都在重复的做图片中的事情-----循环把数据库中返回的表转化为实体对象.是不是每次都在抱怨这样的重复工作.字段越多抱怨越多!不用抱怨了.当你看到这篇文章 ...
随机推荐
- 【Aladdin Unity3D Shader编程】之三 光照模型(二)
高光反射模型 Specular=直射光*pow(cosθ,高光的参数) θ:是反射光和视野方向的夹角 编写高光反射Shader Shader "AladdinShader/07 Specul ...
- Tomcat初应用
Tomcat初应用 这里我们自己建立一个html的web资源,然后在tomcat里进行配置,使我们可以通过服务器在浏览器里打开. 第一步:新建html文件,在里面随便输入几个字符串如:新建txt文件- ...
- 使用CXF 2.7.5出现的java.lang.RuntimeException: Cannot create a secure XMLInputFactory错误解决
昨天启动工程测试webservice服务,结果发现服务一调用就报java.lang.RuntimeException: Cannot create a secure XMLInputFactory j ...
- IDEA搭建SSMM框架(详细过程)
IDEA搭建SSMM框架(详细过程) 相关环境 Intellij IDEA Ultimate Tomcat JDK MySql 5.6(win32/win64) Maven (可使用Intellij ...
- NoSQL:redis缓存数据库
一 Redis介绍 Redis和Memcached类似,也属于key-value nosql 数据库 Redis官网redis.io, 当前最新稳定版4.0.1 和Memcached类似,它支持存储的 ...
- 关于thinkphp控制器引用model里的方法的一点收获
有时候真的是很绕,为了这一点点收获,我几乎花了一天的时间.当我弄明白了的那一刻,我.........好吧,写到这里,我发现不能换行.好吧,就这样吧,开始说正题:要想在controler从model引用 ...
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
在一个项目中,为了系统执行效率更快,把一个经常用到的数据库表通过dataset放到Application中,发现在异步实现中每一次都会出现HttpContext.Current为null的异常,后来在 ...
- TFS在项目中DevOps落地进程(下)
紧接上篇 TFS在项目中Devops落地进程(上) 再接着说TFS相关之前先插入一个番外篇,虽然跟TFS关系不大但跟DevOps关系很大,觉得有必要在此乱入一下. 番外篇--监控之Applicatio ...
- JSON Web Tokens(JWT)
现在API越来越流行,如何安全保护这些API? JSON Web Tokens(JWT)能提供基于JSON格式的安全认证.它有以下特点: JWT是跨不同语言的,JWT可以在 .NET, Python, ...
- 前端框架对于未来web移动端的影响
现在前端框架市场比较乱,各种各样的框架参差不齐,这给我带来了很多困惑,同样是很多朋友的困惑吧!因为前端框架有很多种,对于程序员来说选择学习是非常困难的,不可能有几十上百种都要学习吧,不过最好的办法就是 ...