Sql server 在平面文件连接中设置多个行分隔符
我们可以在SSIS中为平面文件连接设置行分隔符。但问题是如何将平面文件连接的多行分隔符设置为不设置 例如,对于包含此字符串的文本文件: 那只敏捷的棕色狐狸跳过了懒惰的狗 在对行分隔符使用了“”、“和“”之后,我希望有这两行。: 敏捷的棕色狐狸 跳过懒惰的狗Sql server 在平面文件连接中设置多个行分隔符,sql-server,ssis,delimiter,Sql Server,Ssis,Delimiter,我们可以在SSIS中为平面文件连接设置行分隔符。但问题是如何将平面文件连接的多行分隔符设置为不设置 例如,对于包含此字符串的文本文件: 那只敏捷的棕色狐狸跳过了懒惰的狗 在对行分隔符使用了“”、“和“”之后,我希望有这两行。: 敏捷的棕色狐狸 跳过懒惰的狗 我在评论栏的空间用完了,否则我会把这个放在那里。遗憾的是,这不是一个答案,因为它不起作用 切勿直接编辑SSIS包的XML 当然,除非你有它的版本控制和回滚,如果你摧毁它 我认为这是办不到的。我要尝试的下一种方法是直接处理XML。我创建了上一个
我在评论栏的空间用完了,否则我会把这个放在那里。遗憾的是,这不是一个答案,因为它不起作用 切勿直接编辑SSIS包的XML 当然,除非你有它的版本控制和回滚,如果你摧毁它 我认为这是办不到的。我要尝试的下一种方法是直接处理XML。我创建了上一个问题中使用的连接管理器的副本,并摆弄了一下拨号盘 我观察到的是以下特性
- 人头斜接器
- 行分隔符
- 列分隔符
\ux000d\ux000a
。0D0A是十六进制的CR/LF,因此我尝试了头部误差限位器的\u x003B\u\u x000D\u\u x000A\u
。我打开包,huzzah,它在General选项卡上显示{;}{CR}{LF}
我将同样的方法应用于其他属性,结果看起来很有希望。我创建了一个数据流,使用了新的连接管理器,它运行了,但是没有像对待OR那样对待它,而是把它当作一个,所以我只有一行数据流沿着管道向下流动。我用分号修改了第一行并点击了预览,从而确认了这一点。然后显示2行
如果这起作用,为了实现可变性,您可以在连接管理器上使用表达式来设置上述属性
在快速测试之后,似乎我仍然需要进一步使用XML来获取CR/LF“take”。你可以在一个变量上创建一个表达式,然后得到一个要粘贴的LF,但我不知道如何让CR显示出来。可能是从另一个文档中粘贴的
不管怎么说,把这个放在这里,不是作为问题的答案,而是为什么不起作用提供指导。也许它会激发未来读者的想法。简单的回答是,stock Flat File connection manager不具备这种功能
坦率地说,我很难想象有人在一个平面文件中用不一致的行分隔符向我发送数据。但如果我遇到这种情况,我会使用脚本组件,就像@billinkc对您前面问题的回答一样 您可以直接在框中指定分隔符,而不是从下拉列表中选择并保存分隔符。在我的例子中,我在文本框中使用了“$#|”,对我来说效果很好。您已经找到了解决方案(脚本组件),但您没有解释为什么不能使用它。除非你这样做,否则不太可能有人会提供更多的信息,因为你已经回答了自己的问题。