2010-12-01 223 views
0

我有一張表包含我需要在SSIS包內轉換的相關數據行,我不知道如何去做。SSIS:數據轉換分隔的行到字段

在此表格中,彼此相關的行由包含管道字符的行分隔,例如,

測試線1_1
測試線1_2
測試線1_3
|
測試線2_1
測試線2_2
測試線2_3
|
測試線3_1
測試線3_2
測試線3_3

等。

我需要此每一組行的行移動到一個表中並連接到由管分開的一個線分隔符。因此,從上面的例子中我需要在另一表中與落得:

測試線1_1測試線1_2測試線1_3
測試線2_1測試線2_2測試線2_3
測試線3_1測試線3_2測試線3_3

我不知道該怎麼做。我想出口到一個文本文件,然後使用管道分隔符重新導入 - 這將工作,但我會處理數百萬行,所以我寧願避免這種開銷,必須有辦法在SSIS中做到這一點,但此刻我不知道如何。

任何幫助非常感謝,謝謝。

+0

它是否總是由管道行分隔的3行數據? – 2010-12-01 18:57:00

回答

1

您可以創建使用源組件的數據流任務。源將使用SQL語句檢索數據。

然後,添加一個腳本組件作爲轉換。腳本組件必須設置爲異步。選擇「腳本」組件的「輸入和輸出」選項卡,然後選擇「輸出0」。將「SynchronousInputID」設置爲「無」。這將允許組件輸出與輸入行數不同的行數。在「輸出列」分支下添加一個新列。

在您的腳本組件中,您可以根據需要連接數據。默認情況下,你的輸入緩衝區是Row,輸出緩衝區是Output0Buffer。您可以使用Row.NextRow()獲取下一個輸入行,並使用Output0Buffer.AddRow()添加新的輸出行。

給定您的樣本數據,您可以將輸入數據添加到輸出緩衝區,直到「|」出現。或者,如果您的數據適合您,可以使用計數器。

+0

謝謝,這就是我正在尋找的。 – 2010-12-02 10:14:29