首页 > 开发 > 综合 > 正文

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

2024-07-21 02:12:06
字体:
来源:转载
供稿:网友

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
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表