问题一
在跑SQL脚本从贴源层网共享层表插入数据时报如下错误
错误:FAILED: ODPS-0010000:System internal error -fuxi job failed ,cased by:Invalid decimal format.
原因:贴源层的表里有的字段里有空格,而对应共享层表的字段类型是decimal,所以插入错误。
解决办法:
case when 字段1name = ' ' then '0' else 字段1 end as 对应字段name
问题二
按照问题一的解决办法修改后还是报错:
错误:FAILED: ODPS-0130071:[0,0] Semantic analysis exception - physical plan generation failed:java.lang.NumberFormatException: ODPS-0123091:Illegal type cast - In function cast,value ' ' cannot be casted from String to Double.
排查的原因:贴源表里的字段可能有多个空格导致报错
解决办法:
case when trim(字段name) = '' then '0' else 字段name end as 对应字段name
问题三
格式对不上的问题
错误:FAILED:ODPS-0121095:Invalid arguments - in function cast ,string datetime’s format must be yyyy-mm-dd hh:mi:ss, input string is : 20010131
原因:贴源层表的字段里数据是20010131,而插入表对应的字段类型是datetime,要求是年月日时分秒
解决办法:
to_date(字段name, ‘yyyymmdd’)