首先介绍一下spool的参数含义
SET echo off --在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句;
SET feedback off --是否回显本次sql命令处理的记录条数,缺省为on;
SET heading off --是否显示列标题,缺省为on;
SET pagesize 50000 --设置每页有多少行数,缺省为14。当值设为0时,输出内容为一页且不显示列标题,为了避免分页,我们通常可设定为0。
SET termout off --是否在屏幕上显示输出的内容,或脚本中的命令的执行结果,缺省为on;
SET trimout on; --去除标准输出每行后面多余的空格,缺省为off;
SET timing off --显示每个sql语句花费的执行时间;
SET trimspool on --去除重定向(spool)输出每行的拖尾空格,缺省为off;
SET NULL text --显示时,用text值代替NULL值;
SET serveroutput off --是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息;--编写存储过程时,大多会将必要的信息输出;
SET newpage none --设置页与页之间的分隔{1|n|NONE};当值为0时在每页开头有一个小的黑方框;当值为n时在页和页之间隔着n个空行;当为none时,会在页和页之间没有任何间隔;
SET linesize 1000 --设置一行可以容纳的字符数{80|n};输出内容大于设置的行可容纳的字符数,则折行显示.据实际字符设置,过大导出速度慢;
本文URL地址:http://www.bianceng.cn/database/Oracle/201410/45569.htm
SET wrap on --输出行长度大于设置行长度时(用set linesize n命令设置);值为on时,多余的字符另起一行显示,否则多余的字符将被切除,不予显示;
SET verify off --是否显示替代变量被替代前后的语句;
SET colsep' '; --域输出分隔符;
------------------------------------------------------------------------------------------------------
导出文本数据的建议格式:
SQL*PLUS环境设置--
SET echo off --在用start命令执行一个sql脚本时,不显示脚本中正在执行的SQL语句
SET heading off --不显示字段的名称
SET pagesize 0 --设置输出每页行数,为了避免分页,可设定为0。设置为0时,输出内容为一页且不显示列标题具有SET heading off 包含的功能。
SET newpage none --页与页之间没有分隔
SET trimout on --去除标准输出每行后面多余的空格
SET trimspool on --去除重定向(spool)输出每行的拖尾空格
SET linesize 1000 --设置一行可以容纳的字符数
SET feedback off --是否回显本次sql命令处理的记录条数,缺省为on;
工作运用时导出文本数据的常用格式:
SET echo off
SET pagesize 0
SET feedback off
SET trimout on
SET trimspool on
SET linesize 1000
spool路径+文件名
需要执行的SQL代码
spool off
注:linesize要稍微设置大些,免得数据被截断,它应和相应的trimspool 结合使用防止导出的文本有太多的尾部空格。但是如果linesize设置太大,会大大降低导出的速度,另外在WINDOWS下导出最好不要用PLSQL导出,速度比较慢,直接用COMMEND下的SQLPLUS命令最小化窗口执行。
实例
要求
①导出的过程不在SQL*PLUS屏幕上显示
②导出的文本中不含有执行的SQL命令
③导出的文本中不含有字段名
④导出的文本中使用逗号(英文)作为字段的分隔符
⑤导出的文本中每行长200个字符
⑥导出的文本中每页999行
⑦导出的文本中每行后面的空格必须被截取
编写脚本txt_format.sql
--set部分设置导出的文本格式
set echo off --关闭脚本中正在执行的SQL语句的显示
set feedback off --关闭本次sql命令处理的记录条数,默认为on即去掉最后的已经选择的行数
set verify off --可以关闭和打开提示确认信息
set heading off --关闭标题的输出设置为off就去掉了select结果的字段名,只显示数据
set term off --不在屏幕上输出执行结果