昨天用pl/sql从oracle数据库捞取数据时,发现导出的csv格式中某些列的数据被进行了四舍五入处理了,当然这些列都是纯数字的,百思不得其解,后来上网才,才得知了原因。
这并不是导出的CSV文件数据有问题, 如果使用记事本或其他编辑器如EDITPLUS打开文件,会发现数据是正常的。
一、解决显示乱码问题
用EXCEL打开文件显示乱码是因为导出的数据文件的编码格式是UTF-8,而EXCEL默认打开文件的编码格式是UNICODE,编码格式不一致。
解决方法:
1、用记事本或其他编辑器如EDITPLUS打开文件,然后另存为,填写文件名,编码格式选择UNICODE。
2、用EXCEL打开新的文件,即可正常显示。
二、解决科学计数法问题
1、新建EXCEL文件。
2、点击EXCEL菜单中的“数据”->“导入外部数据”->“导入数据”(EXCEL2007点击“数据”->“自文本”),然后选中导出的CSV文件,选择分割符号,下一步,选择逗号,下一步,相应的列选择相应的数据格式(长数字串就选择为文本格式),完成。
3、数据导入完成后,就可以正常显示了。
注意:使用解决科学计数法问题的方法同样可以解决显示乱码问题。
另外发现一个问题:oracle中定义一个字段位number类型,当插入的数据大于等于16位时,就会被四舍五入处理。解决办法就是要把该列定义为varchar2()类型。