2

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

4

3 回答 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

将 sqlplus 假脱机为 xls 格式

于 2018-04-07T12:07:08.187 回答