Oracle sqlplus不能给出长结果



我有一个简单的sql脚本文件,其中只包括一个SELECT语句。但是SELECT语句的输出是巨大的(超过几十万行)。

我无法将输出保存在本地文件中。我只是把我的选择语句改为DESC,它工作得很好,所以问题似乎是输出的大小(选择语句类似于select * from TABLEX)

如果您能告诉我如何执行select语句,我将非常感谢。

Thanks in advance


我更新了我的sql脚本文件如下

SET SQLBLANKLINES ON
set echo off  
set feedback off  
set linesize 1000  
set pagesize 0  
set sqlprompt ''  
set trimspool on  
set headsep off  
spool output.csv  
select * from JM_WCEL_BTH_CURRENT  
SPOOL OFF  
EXIT

输出在

下面
D:>sqlplus user/user@mydb @2.sql
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jan 17 10:10:15 2013
Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Data Mining and Real Application Testing options
  4
  5
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64
bit Production
With the Partitioning, Data Mining and Real Application Testing options
D:>

输出文件中除了数字4和5没有其他内容。我在几分钟后通过按Ctrl + c结束了该进程。我还尝试删除假脱机进程,也没有输出到控制台。

我尝试从其他工具运行sql查询,它在不到一秒的时间内给出结果!

有什么建议吗?

谢谢

我们已经使用SQL*Plus成功地将6000万行假脱机到csv文件中,使用如下代码:

set echo off
set feedback off
set linesize 1000
set pagesize 0
set sqlprompt ''
set trimspool on
set headsep off
spool output.csv
select 'col1,col2,col3' from dual;
select col1 || ',' || col2 || ',' || col3
from bigtable;
spool off

长时间运行查询可能发生的一个问题是Oracle会话超时,或者TCP连接被防火墙破坏。如果你的查询运行了几个小时,你可能应该看看这些问题

这与性能或SQL*Plus限制无关。它只是在执行命令的末尾缺少分号:

 select * from JM_WCEL_BTH_CURRENT; 
                                  ^
                                  |____________add semicolon here

最新更新