dat类型文件入库后校验数据有问题
一、问题:
dat或者txt文件入库后,字段进行正则校验报出不应该出现的错误
二、排查:
(1)根据报出的错误,把错误日志中的字串单独提取出来,进行正则校验发现没有问题
(2)可以想到,要不是程序问题,或者是错误日志抓取没有真实的反映当时的错误情况
(3)而报错的这个文件是个例,排除了程序问题
(4)那么,进行字段正则校验的时候到底发生了什么?
(5)提取流入校验流程的数据,也就是文本文件导入数据库后的字段数据
(6)直接数据库执行从表里提取字段的校验会出现错误,那么就是这个字段隐藏了数据信息
(7)字段的值没有问题,打印字段的长度后发现每个字段后都有换行符【\r】
(8)这就解释了使用等值校验可以,但是从数据库查该值校验却报错的原因
三、总结:
(1)文本文件使用mysql导入数据库由于分割符的原因会出现奇奇怪怪的问题,大部分都是【隐藏字符】导致的
(2)【隐藏字符的排查】,一者可以拷贝到ide里就会出现特殊字符,或者在数据库表里输出字符的长度来判断有无特殊字符
(3)排查的思路就是简化,追踪到问题发生的源头,还原发生错误问题的现场环境
我从不相信什么懒洋洋的自由,
我向往的自由是通过勤奋和努力实现更广阔的人生,那样的自由才是珍贵的、有价值的。
我相信一万小时定律,我从来不相信天上掉馅饼的灵感和坐等的成就。
做一个自由又自律的人,靠势必实现的决心认真地活着。
我向往的自由是通过勤奋和努力实现更广阔的人生,那样的自由才是珍贵的、有价值的。
我相信一万小时定律,我从来不相信天上掉馅饼的灵感和坐等的成就。
做一个自由又自律的人,靠势必实现的决心认真地活着。
[山本耀司]
本文转载请注明出处