作者:iamlaosong
最近一次导入结算数据后,查询结算数据时发现有些数据居然没有,非常奇怪。这个数据导入是先解压压缩包,再用sqlldr导入,查看解压后的数据文件,发现没有转运数据文件,而压缩包中是有的。手工解压压缩包,发现解压到陆运数据文件时报出写入错误,然后解压操作就停止了,所以不仅陆运数据文件数据不全,后面的转运数据文件也没有解压出来。
发生写入错误,而且不是磁盘满了,什么原因呢?压缩包本身并不大,也就200多兆,在Windows下解压这个压缩包,发现陆运数据文件很大,超过2G(2.8G),隐约觉得这是个问题,上网查询果然unzip是不能解压超过2G文件的,现在看来,不仅是压缩包超过2G不行,压缩包内文件超过2G也是不行的。要解压,需要其它工具。据说这是由于C库中long类型数据所能表示的文件偏移在32位机子上只能有2G,可我的机子是64位的。这个理由是不是在描述有什么问题或者我理解的有偏差,这个并不重要,重要的是怎么解压大文件,方法之一是使用软件7zip。