oracle sqlplus没有给出长的结果

时间:2013-01-16 05:43:32

标签: sql oracle select sqlplus

我有一个简单的sql脚本文件,它只包含一个SELECT语句。但SELECT语句的输出很大(超过几十万行)。

我无法将输出保存在本地文件中。我只是将我的select语句更改为DESC并且它运行正常,所以问题似乎是输出的大小(select语句类似于来自TABLEX的SELECT *)

对于如何执行select语句,我将不胜感激。

提前致谢


我更新了我的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查询,它在不到一秒的时间内得到结果!

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:1)

我们使用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连接被防火墙破坏了。如果您的查询运行了几个小时,您应该查看这些问题。

答案 1 :(得分:0)

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

 select * from JM_WCEL_BTH_CURRENT; 
                                  ^
                                  |____________add semicolon here