在sqlplus中假脱机csv文件时的CSV列格式

时间:2013-08-14 12:51:47

标签: unix ksh

当数据库中的列为varchar时,当我从unix假脱机到csv文件时,如何提取数字格式的列?

CSV中的数字格式为5.05291E + 12 实际上应该是5052909272618

2 个答案:

答案 0 :(得分:0)

这个问题不是Unix或ksh问题,而是Excel问题。假设Excel是.csv文件的默认应用程序,当您双击以在Excel中打开时,它会使列类型为" General"默认情况下,您可以获得科学记数法而不是预期的文本值。如果您的数字数据具有前导零,则它们也将被删除。

一种解决方法是启动Excel(2010版本中的此示例),转到数据/从文本获取外部数据/,按照向导确保设置"列数据格式" to" text"对于包含您的大号的列(单击"数据预览"第一部分中的列)。前导零也将被保留。

您可以编写一个vba宏,它将以所有列作为文本打开(稍微搜索会显示一些示例)但似乎没有地方可以告诉Excel将列视为" text"默认情况下。

答案 1 :(得分:0)

有必要编写报告,我也面临着同样的问题。我发现有一个解决方法/解决方案。例如 您的表格名称->员工 包含3列colA,colB,colC。问题出在colB上。连接到sqlplus后,您可以将数据保存到假脱机文件中:

选择colA ||员工的','''|| colB ||''',' || colC

样本结果:

3603342979,'8938190128981938938262',142796283。

当excel打开文件时,它显示结果“原样”