dat类型文件入库后校验数据有问题

一、问题:

  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

dat类型文件入库后校验数据有问题的相关文章

【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理

篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblogs.com/baiboy/p/wpf1.html 篇三:批量处理后的txt文件入库处理:http://www.cnblogs.com/baiboy/p/wpf2.html 篇四:关于OneNote入库处理以及审核:http://www.cnblogs.com/baiboy/p/wpf3.html [

ajaxFileUpload上传文件成功后却无法解析服务器返回的json数据

ajaxFileUpload是一款很好用的文件上传插件,网上也有很多关于它的版本,但在上传文件成功后想返回json数据给前台时,却会出现无法解析json数据的情况. 仔细调试发现其实在向服务器提交数据后,是进入了success回调函数的,只是没有解析到json数据.那就说明服务器做出了响应的,进入了success方法的,唯一的问题就是前台接受的数据不是json格式的. 使用console.log输出data发现并不是纯粹的json数据,其中头部多了<pre style="word-wrap

从文件读取内容,删除一个数据,把删除后的数据重新写入到文件

demo.php : <!--从文件读取内容,删除一个数据,把删除后的数据重新写入到文件--><?php    $aa = file_get_contents('picinfo.db');    $bb = rtrim($aa,'@');    //var_dump($bb);exit;    $array = explode('@@',$bb);    //var_dump($array);exit;        /****测试以下代码,打开var_dump($cc);exit;并依

[课]9.2模拟数据库,表空间和数据文件损坏后的恢复操作

1环境准备 对数据库做一次全备份: 验证当前的备份文件: 2数据库损坏的恢复 2.1模拟数据库损坏 尝试重启数据库查看报错: 这里需要重点说明的是因为我们用的是CATLOG数据库作为目录数据库,所以即使控制文件丢失也不影响我们进行恢复. 现在我们查看一下告警文件的报错: 2.2进行数据库恢复 3表空间损坏的恢复 3.1模拟表空间损坏 查看当前库的表空间,现在我们就模拟TEST_MSSM和TEST_ASSM表空间损坏. 删除表空间文件: 重启数据库查看报错信息: 我们查询一下告警文件里的错误信息:

Oracle 删除数据后释放数据文件所占磁盘空间

测试的时候向数据库中插入了大量的数据,测试完成后删除了测试用户以及其全部数据,但是数据文件却没有缩小.经查阅资料之后发现这是 Oracle “高水位”所致,那么怎么把这些数据文件的大小降下来呢?解决办法如下: 概念: 表空间的相关知识请见这里,详细的介绍了 Oracle 数据库的存储结构. 高水位:High Water Mark (HWM),是段(Segment)的一个指标,界定了段(Segment)曾经配置过的 block 水位. 据说,随着数据的 insert,所使用段(Segment)的数

自动校验文件夹及其内容shell程序(md5 校验文件夹中所有数据)

一.问题的来源有时候copy一些重要的数据,得到之后需要与原数据进行核对是否数据一致.这就需要进行校验. 二.问题的分析校验数据有多种方法,最简单的是使用文件的md5码进行校验.但是文件很多,手动的每个文件进行md5校验显然不合适,这就需要编写shell程序解决. 三.问题的解决通过shell程序解决文件校验问题1.通过命令得到文件md5值比如得到的数据文件夹为 data 文件夹则在data 文件夹中输入以下命令 find  ./ -type f  -print | xargs md5sum  

主库添加数据文件后,备库因为创建文件失败而停止数据同步

primary环境:11gR2 RAC+ASMstandby环境:本地单机 主库添加数据文件后,备库因为创建文件失败而停止数据同步. 1.查看主库环境的数据文件 SQL> select file#,status,name from v$datafile; FILE# STATUS NAME ---------- ------- -------------------------------------------- 1 SYSTEM +ABCE/test/datafile/system.293.

Java通过jxl解析Excel文件入库,及日期格式处理方式 (附源代码)

JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03  xls格式的Excel. 本文是项目中用到的一个实例,先通过上传xls文件(包含日期),再通过jxl进行读取上传的xls文件(文件格式见下user.xls),解析不为空的行与列,写入数据库. 文件user.xls格式为: 下面来看代码实例演示: 一.前端jsp页面(本来内容很多,这里精简了) <%@ page language="java" contentType="text/htm

【表空间支持的最大数据文件大小的算法】【数据库限制】【数据文件文件头保留数据块数】

本地管理表空间中设置不同大小的db_block_size时数据文件头保留空间相应例如以下:--?? db_block_size=2KB,文件头保留32个数据块,即64KB. db_block_size=4KB.文件头保留16个数据块,即64KB. db_block_size=8KB,文件头保留8个数据块,即64KB. db_block_size=16KB,文件头保留4个数据块.即64KB. db_block_size=32KB,文件头保留4个数据块.即128KB. --为什么不是64kb? 默认