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

80酷酷网    80kuku.com

  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


分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: