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