在平面文件连接中设置多个行分隔符
我们可以为SSIS中的平面文件连接设置行分隔符。但问题是如何为平面文件连接设置多行分隔符而不是using Script Component?在平面文件连接中设置多个行分隔符
例如含有该字符串的文本文件:
敏捷的棕色狐狸跳过了懒惰的狗。
我想用后有这样的两行 ''和''为行分隔符:
敏捷的棕色狐狸
跳过了懒惰的狗
简短的回答是股票平面文件连接管理器没有这种能力。
坦率地说,我很难想象一个企业的情况,即有人在带有不一致的行分隔符的平面文件中发送数据。但是如果我遇到这种情况,我会使用一个脚本组件,沿着@ billinkc回答你早期的Multiple row delimiters问题。
我在注释字段中跑出房间,否则我就得离开这个有。这不是一个答案,因为它不起作用,可惜。
从不直接编辑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出现。也许从另一个文档粘贴。
无论如何,在这里留下这个问题,不是对问题的回答,而是为什么不起作用提供指导。也许它会激发未来读者的想法。
你已经找到了这个解决方案(脚本组件),但你没有解释为什么你不能使用它。除非你这样做,否则任何人都不可能提供更多的意见,因为你已经回答了你自己的问题。 – Pondlife