在“平面文件连接”中设置多个行分隔符

时间:2011-11-01 15:49:07

标签: sql-server ssis delimiter

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

例如,对于包含此字符串的文本文件:

  

快速的棕色狐狸跳过懒狗。

我希望在使用',''。'后对行分隔符这两行:

  

快速的棕色狐狸

     

跳过懒狗

3 个答案:

答案 0 :(得分:1)

我在评论栏中跑出了房间,或者我已将其留在那里。这不是一个答案,因为它不起作用,可惜。

永远不要直接编辑SSIS包的XML

除非您将其置于版本控制之下并在您销毁它时回滚。

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

我观察到的是以下属性

  • HeaderRowDelimiter
  • RowDelimiter
  • ColumnDelimiter

对于原始Connection Manager,它们都设置为_x000D__x000A_。 0D0A是十六进制的CR / LF,所以我为我的HeaderRowDelimiter尝试了_x003B__x000D__x000A_。我打开包装并打开huzzah,它在General选项卡上显示{;} {CR} {LF}。

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

如果这有效,为了实现可变性,您可以在连接管理器上使用表达式来设置上述属性......

经过快速测试后,似乎我仍然需要使用XML来使CR / LF“接受”。在十六进制代码中粘贴不会在Connection Manager中进行非XML化。你可以在一个变量上创建一个表达式,然后让一个LF粘贴,但我无法弄清楚如何让CR显示出来。也许从另一个文档中粘贴它。

无论如何,把它留在这里,不是作为问题的答案,而是提供有关不起作用的指导。也许它会激发未来读者的想法。

答案 1 :(得分:0)

简短的回答是库存平面文件连接管理器没有该功能。

坦率地说,我很难想象有人在一个行不同的行分隔符的平面文件中发送数据的业务情况。但是如果我遇到这种情况,我会使用一个脚本组件,就像@ billinkc对你之前的Multiple row delimiters问题的答案一样。

答案 2 :(得分:0)

您可以直接在框中直接输入分隔符,而无需从下拉列表中进行选择并保存。就我而言,我使用了“ $#|”在文本框中,对我来说效果很好。

相关问题