当数据库中的列是 varchar 时,如何从 unix 假脱机到 csv 文件时提取数字格式的列?
CSV 中的数字格式是 5.05291E+12 实际上应该是 5052909272618
这个问题不是 Unix 或 ksh 的问题,而是 Excel 的问题。假设 Excel 是 .csv 文件的默认应用程序,当您在 Excel 中双击打开时,它会默认将列类型设置为“常规”,并且您会得到科学记数法而不是预期的文本值。如果您的数字数据有前导零,它们也将被删除。
修复的一种方法是启动 Excel(此示例在 2010 版本中),转到数据/获取外部数据/从文本,按照向导确保将“列数据格式”设置为“文本”包含您的大数字(首先单击“数据预览”部分中的列)。前导零也将被保留。
您可以编写一个 vba 宏,该宏将以文本形式打开所有列(稍作搜索会显示一些示例),但似乎没有地方可以告诉 Excel 默认将列视为“文本”。
需要开发报告,我也面临同样的问题。我发现有一个解决方法/解决方案。例如,您的表名 --> EMPLOYEE 包含 3 列 colA、colB、colC。问题出在colB上。连接到 sqlplus 后,您可以将 spool 文件中的数据保存为:
选择colA|| ','''||colB||''',' ||colC 来自员工
样本结果:
3603342979,'8938190128981938262',142796283。
当 excel 打开文件时,它显示结果“原样”