spool是sqlplus的内置命令,作用是将数据库中的字段导出为文本,一般都是通过shell脚本来实现。
举例:test.sh
#! /bin/sh sqlplus -s scott/tiger<<EOF set head off set linesize 20000 set echo off set feedback off set pagesize 0 set termout off set trimout on set trimspool on spool /home/test.txt select empno || '|' || ename || '|' || job || '|' || mgr || '|' || hiredate || '|' || sal || '|' || comm || '|' || deptno from emp; spool off exit; EOF
spool常用的设置:
set head off:输出域标题,缺省为on
set linesize 20000:linesize可以设置的大点,防止一行长度不够
set echo off:显示sqlplus中的每个sql命令本身,缺省为on
set feedback off:回显本次sql命令处理的记录条数,缺省为on
set pagesize 0:输出每页行数,缺省为24,为了避免分页,可设定为0
set termout off:显示脚本中的命令的执行结果,缺省为on
set trimout on:去除标准输出每行的拖尾空格,缺省为off
set trimspool on:去除重定向(spool)输出每行的拖尾空格,缺省为off
参考资料:
http://wallimn.iteye.com/blog/472182
http://wenku.baidu.com/link?url=UaJq13FHgH87D5wITX0zcS4XxB6GkPec8mkNIuDP5hWiPvmhk2L-5sEOgECU2xRAfosPnwh3bgPpPmHNTICtE1qxsTuxPaI4ktuu9EVQNcG