kettle向MySQL推数据时报错: Incorrect string value: ‘\xF0\x9F\x87\xB3‘ for column ‘WYN_ADDRESS‘ at row 1

背景:官网后台(MySQL)需要从CRM系统(Oracle)抽一张表,然后我使用ETL工具kettle来抽取数据。

问题:200W左右的数据抽到150W左右的时候突然抛出了一个错误,你说气不气:

    【------2019-12-11更新一下问题:

       最近几天项目需要,导数中又遇到这个问题,解决办法看另一篇 

          https://mp.csdn.net/console/editor/html/102729725

     】

kettle向MySQL推数据时报错: Incorrect string value: ‘\xF0\x9F\x87\xB3‘ for column ‘WYN_ADDRESS‘ at row 1_第1张图片

经查询,这个问题应该是这个字段中的数据编码不统一导致的,但是我按着别的方法都试了也没解决问题,删除数据的时候把官网都搞卡了。最后把wyn_address这个字段删掉就成功了。(这个字段里面的数据比较乱:文字数字各种不规范)

最后的最后,从Oracle中把包含报错字段wyn_address的所有数据拷到本地,结果一次成功,

本地测试结果:

kettle向MySQL推数据时报错: Incorrect string value: ‘\xF0\x9F\x87\xB3‘ for column ‘WYN_ADDRESS‘ at row 1_第2张图片

 

查询数据库编码发现,确实不一致:

官网数据库编码:character_set_server = latin1

kettle向MySQL推数据时报错: Incorrect string value: ‘\xF0\x9F\x87\xB3‘ for column ‘WYN_ADDRESS‘ at row 1_第3张图片

本地数据库编码:character_set_server = utf8

kettle向MySQL推数据时报错: Incorrect string value: ‘\xF0\x9F\x87\xB3‘ for column ‘WYN_ADDRESS‘ at row 1_第4张图片

记录:官网默认数据库编码 一直都是latin1,生产库也不敢动!如果可以修改,改成utf8或utf8mb4,应该就成功了。(以自己实际测试结果为准)

--本地测试:

把本地MySQL库的server编码改成latin1,kettle转换也顺利通过,懵逼脸。。。

进死胡同了,先不纠结了,反正address字段也不重要,可以去掉此字段,问题先解决了再说!!!

问题先记录一下,后续研究研究!!!

 

-------2019-12-11

最近几天项目需要,导数中又遇到这个问题,解决办法看另一篇 

https://mp.csdn.net/console/editor/html/102729725

 

你可能感兴趣的:(MySQL)