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组件接收输出即可,下面是包的运行结果
新闻热点
疑难解答