Informatica中如何处理CSV非法数据及换行字段合并问题
问题分析与解决步骤
一、先明确错误根源
FR_3065错误是Informatica解析CSV时,第4行的Student_rollnumber字段读取到非数字值,结合你提供的CSV内容,核心问题有两个:
- CSV格式混乱:部分行字段错位、引号包裹的字段跨换行、分隔符缺失/冗余,导致解析时字段值被塞进错误列;
- 跨换行的
Subject字段未被正确识别,破坏了行结构。
二、第一步:修复CSV源文件格式
直接修正源文件的格式问题,是最根本的解决方式:
- 补全缺失的分隔符:第7行(
15,'Sudheer'70,"Informatica")中,'Sudheer'和70之间缺少逗号,改成15,'Sudheer',70,"Informatica",避免字段错位; - 合并跨换行的Subject值:把双引号内的换行符去掉,比如
"Java\n"改成"Java","Informatica\n"改成"Informatica";如果需要保留换行内容,必须确保整个字段被双引号完整包裹; - 统一格式规范:
- 所有字符串字段(
Studnet_Name、Subjects)统一用双引号/单引号包裹,避免混合; - 每行结尾删除多余逗号,确保列数和表头完全一致。
- 所有字符串字段(
修复后的CSV示例:
Student_rollnumber,Studnet_Name,Marks,Subjects 10,"Revanth",70,"Maths" 11,"Satish",85,"Science" 12,"Anil",75,"Java" 13,"Surya",90,"C++" 14,"Ramana",85,"python" 15,"Sudheer",70,"Informatica" 16,"Prakash",85,"SQL"
三、第二步:Informatica配置优化(针对必须保留换行的场景)
如果业务需要保留Subject字段的换行内容,需在Informatica中调整源解析规则:
- 在CSV源定义的高级属性中,设置
Quote Character为双引号("),确保双引号内的换行被识别为字段内容,而非行分隔符; - 启用
Allow quoted data with line breaks选项(不同版本位置略有差异,一般在源连接的属性面板); - 确认
Escape Character设置为双引号,避免字段内的双引号干扰解析。
四、第三步:彻底解决FR_3065错误
- 校验字段类型:确保源定义中
Student_rollnumber是数字类型,目标Oracle表对应字段为NUMBER/INT类型; - 添加数据校验逻辑:在映射中用
Expression转换做校验,比如:
或者用IIF(IS_NUMBER(Student_rollnumber), TO_NUMBER(Student_rollnumber), NULL)Filter转换过滤掉无效行,避免错误数据进入目标库; - 检查列数一致性:在源定义中开启列数校验,一旦发现行列数和表头不符,直接标记为错误行并跳过。
内容的提问来源于stack exchange,提问作者manish reddy
相关产品推荐
相关产品推荐

