2017-04-26 47 views
0

我需要使用SSIS加載1個文件。 我正在獲取PIPE(|)分隔的csv文件。但是在每個數據行之間,我得到1行只有「-----------」。如果我嘗試加載文件作爲PIPE分隔比我沒有得到正確的記錄。在交替行中導入具有不同格式的文件

我有1個解決方案是我需要將整行加載到單列中,比我需要篩選具有「----」的行,比我需要使用轉換和拆分列成列。但如果發生變化,將很難管理。

任何人都可以給任何其他的想法來加載這樣的文件? enter image description here

+1

我想看看是否有一種方法,先刪除替代行,然後再嘗試讀取它作爲csv ... – TDP

+0

爲什麼不使用條件拆分並將「----」行發送到多播?你可以(如果你想!)然後用逗號替換剩餘數據上的PIPE(|),並將其輸出到一個新的.csv文件中。接下來的數據流會讀取這個.csv文件。在創建第二個數據流之前,您需要運行一次,因爲您需要示例.csv文件來設置新的數據源。 – MiguelH

+0

可以有很多方法來處理這種情況,但更好的選擇是要求客戶端只發送CSV中的有效記錄,如果csv大的文件大小例如1GB,它會影響性能,因爲你的包會查找不好的記錄在文件中意味着你正在檢查每一行。 – observer

回答

0

之後,我發現解決方案是以「衣衫襤褸」的格式讀取文件,然後過濾掉以「 - 」開頭的記錄。

0

您可以通過腳本任務或轉換來完成此操作。查看腳本中的每一行,如果全是破折號,則忽略它,否則用管道字符解析它。

相關問題