Mule 4 API推送JSON至SQL表:坐标字段SQL数据类型适配问题
解决Mule 4推送JSON到SQL时坐标字段的类型错误问题
坐标字段的正确SQL数据类型
针对payload里的coordinates1、coordinates2、completed_coordinates1、completed_coordinates2这类带多位小数的浮点数值,根据你的SQL数据库类型选择:
- SQL Server/Azure SQL:使用
FLOAT(完全满足经纬度精度需求),若需精确存储则用DECIMAL(18,15)(18位总长度+15位小数,可覆盖你提供的所有数值精度) - MySQL:选择
DOUBLE或DECIMAL(18,15) - PostgreSQL:使用
DOUBLE PRECISION或NUMERIC(18,15)
报错原因分析
你遇到的The conversion from UNKNOWN to BIGINT is unsupported错误,本质是JSON中的浮点数值要插入到SQL整数类型(BIGINT/int)字段,类型不匹配导致转换失败。尝试nvarchar时可能是Mule字段映射出错,驱动无法识别字段类型,进而标记为UNKNOWN。
额外检查点
- 确认DataWeave转换中,坐标字段保持原始
Number类型,未被误转成字符串或其他类型 - 检查SQL连接器配置,是否开启自动类型映射,或是否需要手动指定字段类型映射规则
- 对于
distance_to_place(JSON中是字符串格式数值),先在DataWeave转成数值类型,再插入对应FLOAT/DECIMAL字段
内容的提问来源于stack exchange,提问作者ilya.fastiv
相关产品推荐
相关产品推荐

