2017-02-15 38 views
0

我需要從平面文件中讀取具有自由文本數據的數據(即每列的列長度爲32000,文件中有8-9列)。由於列中有自由文本數據,因此用戶可以在數據中添加任何可能違反分隔符的值,以防我在informatica映射中定義分隔符。此外,由於源級別的字段長度很大,因此使用固定寬度屬性並不容易。Informatica:平面文件閱讀問題

可以請別人幫我在這裏,有沒有什麼辦法可以定義固定寬度屬性的分隔符???

數據示例:

Column1 |自由文本field1 |自由文本field2 | John |你幾歲?你住在哪裏?性別男性|女性,工作:是|否

+0

一個簡短的回答是:沒有語義的理由來定義一個固定寬度的文件分隔符。當你閱讀文件時,你如何將一個領域與另一個領域分離爲一個人?或者你是否通過解析字段的含義來分開它們(在這種情況下,恐怕沒有幫助) – YePhIcK

回答

0

在您提供的示例中,您將管道作爲分隔符開始,然後某人決定使用管道指定替代值......這會讓您選擇開發複雜的代碼變通方法以適應這些異常(例如,在將平面文件讀入informatica之前將已知的異常標記出來,然後在映射中稍後將其解除)或者從設計空間獲得同意以避免使用管道代表替代方法的政治任務選擇(可以使用/代替),並把確認的自由文本輸入字段設置爲禁止管道符(也有一些修正,以防止這些現有的模板被輸入的)

0

一種方法是使用一個複雜的,MUL ticharacter分隔符。我不確定您是否可以從源頭強制執行此操作。

0

你有9列,每列大小爲32000,您的固定文件的定義應該有1-32000 | 32001-64002 | ...... |,裝載平面文件後,你應該截斷的右側或左側空間。

固定不變的文件將有一個固定列長度,您不能在固定格式指定任何分隔符,如果你這樣做,那麼它不是一個固定的文件格式了。

感謝 MKrishnan