使用spool导出数据有时候也是一个比较好的选择,7万条数据导出需要10s,[email protected]:/spool.txt调用,set termout off才会生效不显示到屏幕。SQL语句和spool off后面要加分号。

SQL> drop table test purge;
SQL> create table test as select * from dba_objects;
SQL> select count(1) from test;
70483

SQL> @d:/spool.txt

spool.txt脚本

set feedback off
set heading off
set termout on
set colsep''
set verify off
set echo off
set trimspool on
set pagesize 1000
set linesize 100
define filepath= 'D:\test.csv'
prompt *** Spooling to &filepath
set termout off
spool &filepath
select * from test;
spool off;

set feedback off --回显本次sql命令处理的记录条数,缺省为on
set heading off --屏蔽显示,缺省为on
set termout on --去除标准输出每行的拖尾空格,缺省为off
set colsep'' --域输出分隔符
set echo off --显示start启动的脚本中的每个sql命令,缺省
set trimspool on --去除重定向(spool)输出每行的拖尾空格,缺省为off
set pagesize 1000 --输出每页行数,缺省为24,为了避免分页设定为0
set linesize 100 --输出一行字符个数,缺省为80