Informatica 10.4运行任务报Invalid number错误解决方案咨询
Informatica 10.4版本Flat File映射任务报错解决方案
报错信息:Row[行号].field[列名]: Invalid number:['"],该行将被跳过
问题根因
Informatica 10.4版本对Flat File数据源的引号解析逻辑做了不兼容升级:10.2版本中如果设置可选引号为双引号,字段值中的游离单引号会被自动忽略,不会被纳入字段值参与后续类型转换;但10.4版本会将所有未被配置排除的引号(包括单引号)识别为字段值的一部分,导致int类型的字段拿到带引号的内容时触发非法数值报错。
解决建议
- 调整源端引号处理逻辑:将Flat File源定义的可选引号参数从「双引号」修改为
无,在映射中新增表达式转换统一处理引号:数值类字段先转为字符串类型,使用REG_REPLACE(字段名, '^[''"]+|[''"]+$', '')去掉首尾所有单双引号后,再转为对应数值类型;字符串类字段也用相同逻辑清理多余引号即可。 - 启用旧版本兼容模式:进入对应会话任务的配置属性→读取器优化页面,找到
Flat File解析兼容性版本参数,手动设置为10.2,即可强制10.4版本沿用旧版的引号解析规则,无需修改映射逻辑,适合快速验证恢复作业。 - 开启引号内分隔符忽略配置:检查会话的Flat File读取参数,确认
允许引号内包含分隔符选项处于开启状态,10.4版本该参数默认值与10.2存在差异,未开启时如果双引号内部包含逗号,会被误判为字段分隔符,导致后续字段错位、数值字段拿到非预期的字符串内容触发报错。 - 预处理源文件:可提前通过Shell、Python等脚本清洗源文件,移除数值类型字段的所有包裹引号,从源头避免解析歧义。
内容的提问来源于stack exchange,提问作者Prabakaran
相关产品推荐
相关产品推荐

