一、Spool常用的设置

set arraysize 5000;  //此参数可提高SPOOL卸载的速度,最大可以设置为5000
set autotrace on;    //设置允许对执行的sql进行分析
set colsep ',';   //域输出分隔符
set echo off;    //显示start启动的脚本中的每个sql命令,缺省为on
set feedback off;  //回显本次sql命令处理的记录条数,缺省为on,设置显示“已选择XX行”
set heading off;   //输出域标题,字段的名称,缺省为on
SET LINESIZE 2500;   //每行允许的最大字符数,设置大些,免得数据被截断,但不宜过大,太大会大大降低导出的速度(注意必须与trimspool结合使用防止导出的文本有太多的尾部空格)
set newpage 1;       //设置页与页之间的分隔{1|n|NONE};当值为0时在每页开头有一个小的黑方框;当值为n时在页和页之间隔着n个空行;当为none时,会在页和页之间没有任何间隔;
set newp none;       //设置查询出来的数据分多少页显示,如果需要连续的数据,中间不要出现空行就把newp设置为none,这样输出的数据行都是连续的,中间没有空行之类的
set num 18;          //设置数字的长度,如果不够大,则用科学记数法显示
set numwidth 12;    //输出number类型域长度,缺省为10
SET NULL text;       //显示时,用text值代替NULL值
set pagesize 2000;  //输出每页行数,页面大小,缺省为24,为了避免分页,可设定为0
set serveroutput on; //设置允许显示输出类似dbms_output;--编写存储过程时,大多会将必要的信息输出;
SET SPACE 0;
set term off;        //不在屏幕上输出执行结果
set termout off;   //显示脚本中的命令的执行结果,缺省为on
set timing on;       //显示每个sql语句花费的执行时间,设置显示“已用时间:XXXX”
set trimout on;   //去除标准输出每行的拖尾空格,缺省为off
set trimspool on;  //去除重定向(spool)输出每行的拖尾空格,缺省为off
set verify off       //是否显示替代变量被替代前后的语句
SET wrap on;         //输出行长度大于设置行长度时(用set linesize n命令设置);值为on时,多余的字符另起一行显示,否则多余的字符将被切除,不予显示;

sqlplus /nolog <<- EOFset linesize 2500set pagesize 0set heading offset feedback offset echo offset termout offset trimout onset trimspool onSET SQLPROMPT #SQL>CONN SECURITY/$securitypassword@$ORACLE_SIDSPOOL 2-exp.sh@@ ./sql/2-gen_exp_security.sqlSPOOL OFF CONN TRADE/$tradepassword@$ORACLE_SIDSPOOL 2-exp.sh APPEND@@ ./sql/2-gen_exp_trade.sqlSPOOL OFF CONN INTERFACE/$interfacepassword@$ORACLE_SIDSPOOL 2-exp.sh APPEND@@ ./sql/2-gen_exp_interface.sqlSPOOL OFF CONN ULOG/$ulogpassword@$ORACLE_SIDSPOOL 2-exp.sh APPEND@@ ./sql/2-gen_exp_ulog.sqlSPOOL OFF CONN CLEAR/$clearpassword@$ORACLE_SIDSPOOL 2-exp.sh APPEND@@ ./sql/2-gen_exp_clear.sqlSPOOL OFF CONN SECURITY/$securitypassword@$ORACLE_SIDSPOOL 5-imp.sh@@ ./sql/5-gen_imp_security.sqlSPOOL OFF CONN TRADE/$tradepassword@$ORACLE_SIDSPOOL 5-imp.sh APPEND@@ ./sql/5-gen_imp_trade.sqlSPOOL OFF CONN INTERFACE/$interfacepassword@$ORACLE_SIDSPOOL 5-imp.sh APPEND@@ ./sql/5-gen_imp_interface.sqlSPOOL OFF CONN ULOG/$ulogpassword@$ORACLE_SIDSPOOL 5-imp.sh APPEND@@ ./sql/5-gen_imp_ulog.sqlSPOOL OFF CONN CLEAR/$clearpassword@$ORACLE_SIDSPOOL 5-imp.sh APPEND@@ ./sql/5-gen_imp_clear.sqlSPOOL OFF
EOF

1 <<- EOF EOF

在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell。
EOF只是一个分界符,当然也可以用abcde替换。
当shell遇到<<时,它知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。
此分界符可以是所定义的任何字符串,其实,不一定要用EOF,只要是“内容段”中没有出现的字符串,都可以用来替代EOF,完全可以换成abcde之类的字符串,只是一个起始和结束的标志罢了。

2 set linesize 2500

设置每行的字符输出个数为2500,放置换行(缺省为80 )

3 set pagesize 0

禁止分页输出

4 set heading off

禁止输出标题(缺省为on)

5 set feedback off

禁止回显sql命令处理的记录条数(缺省为on)

6 set echo off

不显示脚本中的每个sql 命令(缺省为on)

7 set termout off

禁止屏幕显示脚本中命令的执行结果(缺省为on)
对实际输出文本没有影响

8 set trimout on

去除标准输出每行的行尾空格(缺省为off)

9 set trimspool on

去除spool 输出结果中每行的结尾空格(缺省为off)

10 SET SQLPROMPT #SQL>

去除开头和结尾的sql查询和结束命令

11 SPOOL xxxx.xx APPEND

将内容附加到一个已经存在的文件中

引申

12 set newpage 1

设置页与页之间的分隔{1|n|NONE};当值为0时在每页开头有一个小的黑方框;当值为n时在页和页之间隔着n个空行;当为none时,会在页和页之间没有任何间隔;

13 set colsep |   

域输出分隔符

14 set sqlblankline off|on

off 对SQL语句中的空行不处理
on 会正确处理空行

15 col column_name format a50**

设置column_name为50个字符宽

二、Spool 使用方法

说明:spool不但可以把数据导出到txt,也可以导出到csv等;不但可以导数据,也可以导出字符,拼装成sql文件等
1.采用设置分隔符的方法
说明:设定分隔符后,由sqlplus自己使用设定的分隔符对字段进行分割,这种方法不怎么用,在此不详述。

set colsep '|' --设置|为列分隔符   
set trimspool on   
set linesize 120   
set pagesize 2000   
set newpage 1   
set heading off   
set term off 
set num 18 
set feedback off   
spool e:\temp.txt
select * from tablename;   
spool off

2.采用分隔符并接,手工控制输出格式
说明:最佳方法,该方法可以运用各种oracle函数处理导入时的字符。

set trimspool on
set linesize 120
set pagesize 2000
set newpage 1
set heading off
set term OFF
spool e:\fs_temp_tb_cm_serv_20120703.txt
select '地市,县区,用户,时间,流量,费用' form dual;
SELECT a_name||','||replace(replace(replace(b_name,chr(9)),chr(10)),chr(13))||','||replace(c_name,'\"')||','||to_char(create_time,'yyyy-mm-dd hh24:mi:ss')||','||net_flux||','||all_fee FROM temp_ltao10;
spool off

上面from dual语句会被当做表头字段先导出排在第一行
(SPOOL OUT比SPOOL OFF多了一个把文件发送到标准打印输出的动作。记得ItPub论坛上有位大虾总结得更简练“OUT = OFF + PRINT”。)
10g以前的版本,spool会将文件覆盖,10g后,为追加。

3.spool不但可以导出数据,也可以生成sql文件

spool c:\table.sql;   
select 'insert into changetable values('|| id||',',changedate||',',areaid||',',workunit||',',dept||',',post||',',address||',',zip||',',note||',',city||',',province||',',country||',',status||',',lawpeopleid||',',reason||',',feedback||');' from change where lawpeopleid not in (select id from LAWPEOPLE t );  
spool off

sqlplus 中的spool命令相关推荐

  1. Oracle数据库间的数据复制 - SQLPlus中的COPY命令

     Copy命令可以实现不同Oracle数据库间的数据的复制,也是可以实现同一数据库的数据复制,其性能表现和导入/导出相同.原理图: 根据9i文档,说Copy命令未来会不支持,但实际上Oracle ...

  2. sqlplus中利用spool生成带日期的文件名

    col v_filename new_value v_filename noprint Select to_char(sysdate,'yyyymmdd')||'.txt' v_filename fr ...

  3. oracle中spool命令的使用,Oracle中Spool命令的使用方法实例

    Oracle中Spool命令的使用方法实例 前言 对于Oracle中的Spool命令,其实还可以换一种问法为,如何将sqlplus中的结果输出到指定的文件夹中. 近期在进行Oracle数据库备份的时候 ...

  4. oracle中set怎么用,sqlplus命令格式以及sqlplus中set的用法与解释-Oracle

    sqlplus命令格式以及sqlplus中set的用法与解释 [oracle@oracle02 username]$ sqlplus –help SQL*Plus: Release 9.2.0.4.0 ...

  5. SQLPLUS SPOOL命令使用详解

    原文出处 SQLPLUS SPOOL命令使用详解 SPOOL是 SQLPLUS的命令,必须在SQLPLUS中使用,主要完成以标准输出方式输出SQLPLUS的命令及执行结果,一般常用户格式化导出ORAC ...

  6. oracle数据库基础:sqlplus与spool命令

    sqlplus命令 使用sqlplus登录之后,可以使用**buff(缓存)**来存储/执行/修改上一条运行的sql语句 . buff中只能存储一条sql语句,但是这条sql语句可能有很多行 每次放入 ...

  7. oracle数据库中spool的作用,Oracle中Spool命令如何使用 Oracle中Spool命令使用方法

    Oracle中Spool命令如何使用?本篇文章小编给大家分享一下Oracle中Spool命令使用方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 方法/步骤 首先需要明白 ...

  8. SQLPLUS中几个常用命令

    SQL> set echo on-----------------设置运行命令是是否显示语句  SQL> set feedback on----------------设置显示" ...

  9. sqlplus中清理屏幕语句_sqlplus命令的使用大全

    Oracle的sql*plus是与oracle进行交互的客户端工具.在sqlplus中,可以运行sqlplus命令与sqlplus语句. 我们通常所说的DML.DDL.DCL语句都是sql*plus语 ...

最新文章

  1. 网站性能越来越差怎么办?
  2. 写那么多年Java,还不知道啥是Java agent 的必须看一下!
  3. 用Python分析了1982场英雄联盟数据,开局前预测游戏对局胜负!
  4. MongoDB中mapReduce的使用
  5. Python基础训练题-简单数学公式
  6. 【C++】Visual Studio教程(六) -更新Visual Studio
  7. html(5)标签form表单——进阶
  8. android服务开启线程,android之service与intentService的不同
  9. My first project
  10. 将Office2010版EXCEL文件保存为2007版.XLS文件格式体积巨增解决方法
  11. 嵌入式单片机该如何选型?
  12. String类常用方法
  13. java图片缩小算法_图片缩小尺寸算法
  14. 卸载腾讯位置服务器,完整优雅的卸载腾讯云云服务器安全监控组件
  15. jboss mysql cluster_jboss之mod_cluster集群
  16. kibana异常 License information from the X-Pack plugin could not be obtained from Elasticsearch
  17. 阿里巴巴校园招聘在线面试之附加题
  18. 抢票软件不该如此抢手
  19. python wait notify_java与python多线程wait,notify操作比较
  20. 长沙市六中学生寒假社会实践活动在湖南智慧教育装备展示体验中心开展

热门文章

  1. HDLBits-Circuits学习小结(八)有限状态机进阶(Lemmings、Onehot FSM、PS/2 packet parser)
  2. 190822——喜欢
  3. 采用busybox的嵌入式Linux根文件系统的的制作方法
  4. RV1126移植部署sqlite3
  5. PMML模型-评分卡模型Undefined result解析
  6. 计算机资源库在哪,电脑的资源管理在哪里
  7. 基于FPGA的DDS 信号发生器(三)
  8. python电脑推荐_kk视频app下载安装|腾讯视频app下载_电脑知识学习网
  9. 15个iOS的视频播放控件
  10. 慢步人生路,什么是真爱?