从sql导出到excel

时间:2012-08-06 15:26:50

标签: sql excel csv export-to-excel sqlplus

我使用sqlplus命令行界面运行查询。该查询将获取大约3000万条记录。我需要将结果导出为csv或xls格式。任何人都可以告诉我这是否可能? 任何帮助深表感谢。 提前谢谢。

3 个答案:

答案 0 :(得分:2)

在您的select语句之前尝试spool myresults.csv,Excel可以轻松打开。

修改

像这样:

SET UNDERLINE OFF
SET COLSEP ','
--That's the separator used by excel later to parse the data to columns
SET LINES 100 PAGES 100
SET FEEDBACK off
--If you don't want column headings in CSV file
SET HEADING off 
Spool ~\myresults.csv
--Now the actual query
SELECT * FROM YOUR_TABLE;
Spool OFF

编辑2

如果要查询30M记录,可能需要批量处理结果。我从来没有在excel文件中走得那么远,但限制是65535行(对于30M记录,这将是458个文件)。

我会将查询切换为60K块的块并将每个选择假脱机到另一个excel文件,可能是通过循环整数并将其连接到每个文件名的末尾。

答案 1 :(得分:1)

SET PAGESIZE 50000
SET FEEDBACK OFF
SET MARKUP HTML ON SPOOL ON
SET NUM 24
SPOOL sample.xls
SELECT * from users;
SPOOL OFF
SET MARKUP HTML OFF SPOOL OFF

此选项可帮助您直接导出到Excel文件

答案 2 :(得分:-1)

SET PAGESIZE 40000

SET FEEDBACK OFF

SET MARKUP HTML ON

SET NUM 24

SPOOL file_name.xls

---- Execute your query

SPOOL OFF

SET MARKUP HTML OFF

SPOOL OFF

Spool sqlplus to xls format