我使用 sqlplus 命令行界面运行查询。该查询将获取大约 3000 万条记录。我需要将结果导出为 csv 或 xls 格式。谁能让我知道这是否可能?任何帮助深表感谢。提前致谢。
问问题
21735 次
3 回答
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 文件,可能通过循环一个整数并将其连接到每个文件名的末尾。
于 2012-08-06T15:30:21.563 回答
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 文件
于 2015-03-23T09:55:39.623 回答
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
于 2018-04-07T12:07:08.187 回答