我正在尝试将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
任何帮助表示赞赏。
干杯
答案 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