PL/SOL csv格式导出查询结果时出现某些列的数据被四舍五入了的解决办法

时间:2023-10-01 16:32:14

昨天用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()类型。