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

Exporting table from Oracle to .csv keeps hanging

我正在尝试将 Oracle 12 中的 table 导出到本地 .csv 文件。我尝试使用 SQL 开发人员的导出功能并在 SQL 本身中使用假脱机命令。

令人沮丧的是,有时它可以通过假脱机命令工作,但通常会在 50% 左右的过程中挂起。

SQL 开发人员不会抛出错误,但会无限期地显示为忙碌 - 使问题难以诊断。 .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

感谢任何帮助。

干杯

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'

我刚刚关闭了反馈。

然后

设置 sql 格式 csv 线轴 file.csv select * 来自 table; 脱线

但不要在 SQLDev GUI 中执行此操作,请使用命令行界面,SQLcl - 它位于 bin 目录中,工作方式与 SQL*Plus 相同。

你没有说它在 'hanging.' 之前吐出多少行,如果有的话,你也没有说 table 有多大。

因此,在您的查询中添加一个 rownum < 50000,看看结果如何。您可能需要向 JVM 添加内存,但实际上您不需要

在 SQLPlus 中,只需执行

set markup CSV