2011-11-01 105 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出現。也許從另一個文檔粘貼。

無論如何,在這裏留下這個問題,不是對問題的回答,而是爲什麼不起作用提供指導。也許它會激發未來讀者的想法。

相關問題