一、问题:
dat或者txt文件入库后,字段进行正则校验报出不应该出现的错误
二、排查:
(1)根据报出的错误,把错误日志中的字串单独提取出来,进行正则校验发现没有问题
(2)可以想到,要不是程序问题,或者是错误日志抓取没有真实的反映当时的错误情况
(3)而报错的这个文件是个例,排除了程序问题
(4)那么,进行字段正则校验的时候到底发生了什么?
(5)提取流入校验流程的数据,也就是文本文件导入数据库后的字段数据
(6)直接数据库执行从表里提取字段的校验会出现错误,那么就是这个字段隐藏了数据信息
(7)字段的值没有问题,打印字段的长度后发现每个字段后都有换行符【\r】
(8)这就解释了使用等值校验可以,但是从数据库查该值校验却报错的原因
三、总结:
(1)文本文件使用mysql导入数据库由于分割符的原因会出现奇奇怪怪的问题,大部分都是【隐藏字符】导致的
(2)【隐藏字符的排查】,一者可以拷贝到ide里就会出现特殊字符,或者在数据库表里输出字符的长度来判断有无特殊字符
(3)排查的思路就是简化,追踪到问题发生的源头,还原发生错误问题的现场环境
原文地址:https://www.cnblogs.com/hackxiyu/p/8665237.html
时间: 2024-11-08 21:52:20