2014-09-26 16 views
1

我從我的客戶那裏得到了要求。如何將分隔符(,)視爲SSIS中的文本?

要求是

源是定界符平面文件和分隔符是逗號(,)。源數據在數據中包含逗號。現在我想考慮分隔符也是文本。這裏是示例源文件 例如:

col1,col2,col3 

10,usa,uk,hr 

20,ind,aus,fin 

30,europe,marketing 

現在我的輸出應該是這樣的

enter image description here

不使用腳本任務,我需要達到這個輸出剩餘變換

感謝提前

以下屏幕截圖顯示我的試驗this is flatfile preview after configuration

at last out put came like this

+2

你怎麼能告訴它是10美國,英國小時,而不是10美國英國,小時? – Ndech 2014-09-26 09:35:36

+0

@Ndech他們指定col3只有一個這樣的值..然後只有我們來了解美國,英國不英國,我希望你明白 – 2014-09-26 09:39:54

+0

好的。使用腳本任務應該很容易,爲什麼你不想這樣做? – Ndech 2014-09-26 09:45:52

回答

1

使用引號的文本限定符。即

"20","ind,aus","fin" 
"30","europe,"marketing" 

文本限定符可以在平面文件連接管理器中定義。我想別的只是猜測工作,你會編寫代碼來處理新的場景,直到世界末日。

+0

我已經試過這個..但它不工作:) – 2014-09-29 04:34:15

+0

@ PPRas'd:你可以提供屏幕截圖,嘗試了什麼標記建議。 – 0537 2014-09-29 06:22:33

+0

@satish請檢查我已更新我的問題的屏幕截圖:) – 2014-09-29 11:22:02

0

如果您知道第一個和第三個字段總是有單個值,並且其中的所有內容都屬於第二個字段,則可以使用正則表達式。任何etl工具都應該允許你通過正則表達式來解析一個csv文件。

對你提到的4例以下

([^,]*),(.*),([^,]*) 

作品。

我不是一個正則表達式專家,我相信你可以使它更堅實和優雅。

+0

如果我使用正則表達式我去腳本任務。我的問題是沒有使用腳本任務,我需要實現這一點。 – 2014-09-29 04:39:07

+0

您可以輕鬆開發Pentaho數據集成任務:CSV文件輸入步驟讀取每行,RegEx步驟將行的部分匹配到字段,然後您可以自由輸出到您選擇的數據庫。但是,不管你選擇什麼,幾乎肯定會有一個正則表達式組件解析你的行。你有不同的格式。任何不是固定寬度或分隔的東西都必須以某種方式解析模式。 – nsousa 2014-09-30 08:04:52

相關問題