2017-02-15 35 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