现象:
mysql中源表的字段类型: float(36,6) shell中查询到的该字段的值: 345.678894 (insert后查询) insert操作触发canal之后,canal中获取到的值:345.6789 (获取方法:client端column.getValue()) 问题: canal client端获取的float类型字段的“精度”与mysql中的不一致。
我曾经尝试改写 com.alibaba.otter.canal.common.utils.CanalToStringStyle.appendDetail方法,如下:
但是结果现实方法改写不起作用。
请问大神如何修正这个问题?
原提问者GitHub用户alexlgj
已修复,修改已生效,之前不生效的原因是:我没有在intellij idea中将修改的源码重新打包jar并替换所安装的canal server中的lib下的对应jar。精度不一致的修复方法:parser模块下的logeventconvert的parseOneRow方法( case Types.REAL:)将float转换为double再处理。
原回答者GitHub用户alexlgj
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。