SQL2005-SSIS 对同一个文件中的不同行类型做不同处理

sql2005

SQL2005-SSIS 对同一个文件中的不同行类型做不同处理

某些时候数据来源是文本文件,有时候我们经常看到包含主/细、父/子记录在同一个文本文件中,这在DTS中是非常难以处理的,但这种情况在SSIS中有所改变
在本文中,我将制造这样一个例子让你明白如何处理这种类型的要求

大体的数据流构造像下面这样,我会仔细加以讲解:
 

下面这个图显示了我们要处理的数据来源的文本格式,其中含有“M”的为主行,含有“D”的为子行
 

我们将建立一个flat file connection manager指向该文件,在这里,我并不打算把行拆分出来,暂时把整行读在一列中
 

下一步我们将拖曳一个 Flat File Source Adapter 组件到数据流面板,并指定来源和上面所建立的连接来源,且指定输出列
  

完成这个操作后,我们将用 Conditional Split Transform 组件来把文件中的记录流向不同的输出,配置如下
 

现在我们已经完成了主从行的不同流向,下一步我们将用 Script Transform 把行中的信息拆开到不同的列中去
使用Script Transform组件的第一步是添加一些输出列,当数据经过这个组件时,下游的组件将可以看到这些列
 

到现在,我们只定义了Script Transform 组件将产生这些列,但并没有具体的指定列中的内容,下面我们可以通过设计以下脚本来实现不同列的内容是什么
 

最后,我们只需放上2个Raw File Destination Adapter组件接收输出即可,下面是包的运行结果
 
 
 
 
  
 
 

文章来源:http://www.sqlis.com/default.aspx?54

时间: 2024-08-18 09:59:21

SQL2005-SSIS 对同一个文件中的不同行类型做不同处理的相关文章

youcompleteme-VIM插件YouCompleteMe如何配置才能对自定义头文件中的函数和类型进行补全

问题描述 VIM插件YouCompleteMe如何配置才能对自定义头文件中的函数和类型进行补全 我最近在折腾YouCompleteMe,对基本的C/C++关键字都能进行补全,但不能对自己项目中的头文件中的标识符进行补全,已经在 .ycm_extra_conf.py中通过'-I','自己项目头文件的路径'的方式把自己的头文件路径加入了flags中,但还是不能对自己编写的头文件中的函数和类型进行补全,应该怎么配置??? 解决方案 我看了你的答案,没什么有用的内容 解决方案二: 可以看看这篇博文: h

struct-结构体初始化问题, 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化

问题描述 结构体初始化问题, 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化//定义结构体//struct achievement{int number; char name[20]; char sex; float achievement1achievement2achievement3;}tab_achievement[N]; 解决方案 写一个循环,从txt中读取数据,然后赋值

w y f-编写一个java程序把两个文件中不同的行输出到一个文件中

问题描述 编写一个java程序把两个文件中不同的行输出到一个文件中 把两个文件中的内容不同的行输出到同一个文件中 代码:文件1:/x /x 46/m /x /x 稍/d 等/v 我/r 现在/t 去/v 写/v 上/vq 下/m?? 啊/y 去/v 协商/v 下/m 好的/l 亲爱的/n ,/w 当时/t 这个/r 图片/n 应用/v 的/u 地方/n 特别/d 多/a ,/w 就/d 像/v 全/a 用途/n 一样/u ./w 所以/c 还/d 挺/d 麻烦/a ,/w 等/v 我们/r 副总

c++-为什么模板类的声明和实现必须定义在一个.h文件中?

问题描述 为什么模板类的声明和实现必须定义在一个.h文件中? "模板类的实现,脱离具体的使用,是无法单独的编译的:把声明和实现分开的做法也是不可取的,必须把实现全部写在头文件里面."这个的原理是啥啊,越详细越好. 解决方案 http://blog.csdn.net/lichengyu/article/details/6792135 这位博主讲的蛮好的 解决方案二: 模板类的定义和实现可以不在同一个文件中请将类模板的声明和实现都写在.h文件中模板函数的声明和定义都放在.h文件 解决方案三

将Linux下编译的warning警告信息输出到文件中[整理笔记]

Linux中,脚本语言环境中,即你用make xxx即其他一些普通linux命令,比如ls,find等,不同的数字,代表不同的含义: 数字 含义 标准叫法0 标准输入  stdin = standard input1 标准输出  stdout = standard output2 标准错误输出  stderr = standard error 而系统默认的stdin,stdout,stderr,都是屏幕,所以,当你执行命令,比如make,后,所输出的信息,都是可以在屏幕上看到的.所以,想要将对应

文件下载-同一个文件在Linux系统中下载,文件比较小

问题描述 同一个文件在Linux系统中下载,文件比较小 在www.samba.org下载Samba源码samba-latest.tar.gz,在Linux系统下下载大小只有19.4M,而在win7系统下载大小确是97.1M,解压后里面内容一样(其实就是同一个下载路径https://download.samba.org/pub/samba/samba-latest.tar.gz),,,为什么大小不同 19.4M的是从Linux系统中拖出来的 win7用的是360浏览器,Linux用的是Firefo

同一个java文件中,类外面定义的变量都是公用的,

问题描述 同一个java文件中,类外面定义的变量都是公用的, 同一个java文件中,类外面定义的变量都是公用的,那么一个类想调用另外一个类里面定义的变量或者对象应该怎么样调用呢 解决方案 static的 类名.变量名 类名.方法(参数) 成员变量 对象.变量名 对象.方法(参数) 解决方案二: 类名.变量名 类名.对象名

存储.NET应用程序到定制的XML .config文件中

xml|程序   在决定分布基于.Net框架的应用程序之前,要决定怎样管理公共程序的设置.要提高代码的重用率和应用程序的互用性,所有的应用程序 – WEB, Windows, Web服务,Windows 服务都要使用应用配置文件作为公共的方法来管理以应用为中心的信息.      系统配置 vs. 应用配置   当.NET的公共语言运行库(CLR)执行应用程序的时候,它会使用一系列的XML配置文件来设置运行环境的基本属性.举例说,如果执行WEB应用程序,那么CLR就会询问WEB.config文件来

在网页XHTML文件中引入CSS样式五种方式

css|xhtml|网页 XHTML文件是通过CSS样式进行显示的控制的,也就是结合XHTML与CSS来表现页面内容.那么到底有哪些方式在XHTML文件中引入CSS样式呢? 一.使用STYLE属性 将STYLE属性直接加在个别的元件标签里,<元件(标签) STYLE="性质(属性)1: 设定值1; 性质(属性)2: 设定值2; ...} 例如: <td style="color:#c00; font-size:15px; line-height:18px;> 网页教学