TXT文档中Windows和UNIX格式的区别

今天遇到一个非常奇怪的问题,研究了一个小时终于研究出了结果,问题出在Windows和Unix格式的txt文档的区别上。

上午准备跑一个SQL,需要从txt文档导入一张表,txt文档是DBA帮我直接从数据库里面导出来的,我编辑了一下重新导进去,理论上来说应该是没有问题,但是问题恰恰在这个时候出现了。

当我导入完毕后,select可以看到导入的数据,但是加上where条件后,却总是no rows selected,开始以为是空格的问题,于是加上了trim,结果还是无效,照DA也没有解决这个问题。

后来停下来仔细想了下,曾经我些的sh文件到Linux上执行的时候有时候会报一个很奇怪的错误,什么^M之类的,由此想到,是不是因为这个TXT文档被加上了一个看不见的标记呢?

然后我果断的length了一下,发现的确有这个问题,我的文档中的数据长度都是9的,但是length出来都是10,然后我就把这个txt文档重新复制了一份,保存位unix格式的txt文档,再次上传,问题全部解决。

看来txt文档的水还是很深的,有编码问题,也有格式问题,各位需要关注一下的。