将表从Oracle导出到.csv会一直挂起

时间:2018-02-19 17:44:58

标签: sql oracle csv export-to-csv

我正在尝试将Oracle 12中的表导出到本地.csv文件。我尝试过使用SQL Developer的导出函数和在SQL本身使用spool命令。

令人沮丧的是,有时它会通过spool命令工作,但通常会挂起50%左右。

SQL Developer不会抛出错误但仍然无限期地显得很忙 - 这使得问题难以诊断。 .csv根本没有增长,这表明它已经失败了(加上它应该只占用2分钟)。

我用来假脱机的SQL是:

set colsep ";"
set termout off
set linesize 9999
set trimspool on
set heading on
set pagesize 0
set wrap off
set feedback off
set newpage 0
set arraysize 5000
spool 'C:\Users\me\my_file.csv'
select /*csv*/ * from PRICING_DATA_SET;
spool off

任何帮助表示赞赏。

干杯

2 个答案:

答案 0 :(得分:1)

set colsep ";" -- no need to do this with /*csv*/
set termout off
set linesize 9999 
set trimspool on
set heading on
set pagesize 0 
set wrap off
set feedback off
set newpage 0
set arraysize 5000 -- don't do this
spool 'C:\Users\me\my_file.csv'

我只是设置反馈意见。

然后

设置sqlformat csv spool file.csv select * from table; 假脱机

但是不要在SQLDev GUI中这样做,使用命令行界面,SQLcl - 它位于bin目录中,就像SQL * Plus一样。

在“悬挂”之前,你没有说出它吐了多少行(如果有的话)。你也没说这张桌子有多大。

所以添加一个rownum< 50000您的查询,看看如何。您可能需要向JVM添加内存,但实际上您不需要

答案 1 :(得分:0)

在SQLPlus中,只需执行

set markup CSV