我從我的客戶那裏得到了要求。如何將分隔符(,)視爲SSIS中的文本?
要求是
源是定界符平面文件和分隔符是逗號(,)。源數據在數據中包含逗號。現在我想考慮分隔符也是文本。這裏是示例源文件 例如:
col1,col2,col3
10,usa,uk,hr
20,ind,aus,fin
30,europe,marketing
現在我的輸出應該是這樣的
不使用腳本任務,我需要達到這個輸出剩餘變換
在感謝提前
以下屏幕截圖顯示我的試驗個
我從我的客戶那裏得到了要求。如何將分隔符(,)視爲SSIS中的文本?
要求是
源是定界符平面文件和分隔符是逗號(,)。源數據在數據中包含逗號。現在我想考慮分隔符也是文本。這裏是示例源文件 例如:
col1,col2,col3
10,usa,uk,hr
20,ind,aus,fin
30,europe,marketing
現在我的輸出應該是這樣的
不使用腳本任務,我需要達到這個輸出剩餘變換
在感謝提前
以下屏幕截圖顯示我的試驗個
使用引號的文本限定符。即
"20","ind,aus","fin"
"30","europe,"marketing"
文本限定符可以在平面文件連接管理器中定義。我想別的只是猜測工作,你會編寫代碼來處理新的場景,直到世界末日。
我已經試過這個..但它不工作:) – 2014-09-29 04:34:15
@ PPRas'd:你可以提供屏幕截圖,嘗試了什麼標記建議。 – 0537 2014-09-29 06:22:33
@satish請檢查我已更新我的問題的屏幕截圖:) – 2014-09-29 11:22:02
如果您知道第一個和第三個字段總是有單個值,並且其中的所有內容都屬於第二個字段,則可以使用正則表達式。任何etl工具都應該允許你通過正則表達式來解析一個csv文件。
對你提到的4例以下
([^,]*),(.*),([^,]*)
作品。
我不是一個正則表達式專家,我相信你可以使它更堅實和優雅。
如果我使用正則表達式我去腳本任務。我的問題是沒有使用腳本任務,我需要實現這一點。 – 2014-09-29 04:39:07
您可以輕鬆開發Pentaho數據集成任務:CSV文件輸入步驟讀取每行,RegEx步驟將行的部分匹配到字段,然後您可以自由輸出到您選擇的數據庫。但是,不管你選擇什麼,幾乎肯定會有一個正則表達式組件解析你的行。你有不同的格式。任何不是固定寬度或分隔的東西都必須以某種方式解析模式。 – nsousa 2014-09-30 08:04:52
你怎麼能告訴它是10美國,英國小時,而不是10美國英國,小時? – Ndech 2014-09-26 09:35:36
@Ndech他們指定col3只有一個這樣的值..然後只有我們來了解美國,英國不英國,我希望你明白 – 2014-09-26 09:39:54
好的。使用腳本任務應該很容易,爲什麼你不想這樣做? – Ndech 2014-09-26 09:45:52