2011-11-01 91 views
0

我们可以为SSIS中的平面文件连接设置行分隔符。但问题是如何为平面文件连接设置多行分隔符而不是using Script Component在平面文件连接中设置多个行分隔符

例如含有该字符串的文本文件:

敏捷的棕色狐狸跳过了懒惰的狗。

我想用后有这样的两行 ''''为行分隔符:

敏捷的棕色狐狸

跳过了懒惰的狗

+0

你已经找到了这个解决方案(脚本组件),但你没有解释为什么你不能使用它。除非你这样做,否则任何人都不可能提供更多的意见,因为你已经回答了你自己的问题。 – Pondlife

回答

0

简短的回答是股票平面文件连接管理器没有这种能力。

坦率地说,我很难想象一个企业的情况,即有人在带有不一致的行分隔符的平面文件中发送数据。但是如果我遇到这种情况,我会使用一个脚本组件,沿着@ billinkc回答你早期的Multiple row delimiters问题。

1

我在注释字段中跑出房间,否则我就得离开这个有。这不是一个答案,因为它不起作用,可惜。

从不直接编辑SSIS包

的XML当然,除非你有版本控制之下,如果你破坏它回滚。

我不认为这是可以做到的。我要尝试的下一个方法是直接使用XML。我创建了上一个问题中使用的连接管理器的副本,并拨打了拨号。

我看到什么是以下属性

  • HeaderRowDelimiter
  • RowDelimiter
  • ColumnDelimiter

他们都被设置为_x000D__x000A_为原来的连接管理器。 0D0A是十六进制的CR/LF,所以我为我的HeaderRowDelimiter尝试_x003B__x000D__x000A_。我打开了包裹,并打开了包裹,它在常规选项卡上显示{;} {CR} {LF}。

我将其应用于其他属性,事情看起来很有希望。我创建了一个数据流,使用了新的连接管理器并运行它,但不是像OR那样对待它,而是只有一行数据流向管道。我通过用分号后缀第一行并点击预览来确认AND行为。然后显示2行。

有了这个合作,实现你可能已经使用的连接管理器来设置上述性能上表现的变化...

快速测试后,似乎我仍然需要与XML向futz获得CR/LF“采取”。在十六进制代码中粘贴不会在连接管理器中得到未XML化。你可以在一个变量上创建一个表达式,然后获得一个LF来粘贴,但我无法弄清楚如何让CR出现。也许从另一个文档粘贴。

无论如何,在这里留下这个问题,不是对问题的回答,而是为什么不起作用提供指导。也许它会激发未来读者的想法。