一、常用设置

set lin 1000    --一行可容纳字符数{80|n};输出大于设置值,则折行显示
set wrap on    --输出行长度大于设置长度时(set lin n设置);值为on,多余字符另起一行显示,否则多余字符将被切除,不予显示
set pages 100    --设置每页行数,值为0时,输出为一页且不显示列标题,为避免分页,可设定为0
set newpage none  --设置页与页之间的分隔{1|n|none};值为0时在每页开头有一个小黑方框;值为n时在页和页之间隔着n个空行;为none时,在页和页之间没有任何间隔
set heading off       --是否显示列标题,缺省为on
set timing on      --显示每个sql语句花费的执行时间
set echo off        --在用start执行一个sql脚本时,是否显示脚本中正在执行的sql语句
set feedback off      --是否回显本次sql命令处理的记录条数,缺省为on
set termout off       --是否在屏幕上显示输出的内容,或脚本中的命令的执行结果,缺省为on
set trimout on        --去除标准输出每行后面多余的空格,缺省为off
set trimspool on     --去除重定向(spool)输出每行的拖尾空格,缺省为off
set null text      --显示时,用text值代替null值;
set serveroutput off --是否显示用dbms_output.put_line包进行输出的信息
set verify off     --是否显示替代变量被替代前后的语句;
set colsep ''           --域输出分隔符

二、应用

工作运用时导出文本数据的常用格式:
set lin 1000 pages 0 newpage none heading off feedback off echo off trimout on trimspool on
set echo off feedback off trimout on trimspool on lin 1000 pages 0
set colsep '|' echo off feed off term off heading off trims off trimspool on linesize 10000 pagesize 0 newpage 1
spool 路径+文件名
--需要执行的sql代码
spool off

输出规则文件:
方式一:
set colsep '|' trimspool on lin 120 pages 2000 newpage 1 heading off term off feedback off num 18   
spool 路径+文件名
select * from tb_name;
spool off
方式二:
set trimspool on lin 120 pages 2000 newpage 1 heading off term off
spool 路径+文件名
select col1||','||col2||','||col3||','||col4||'..' from tb_name;
spool off
注:方法一采用设定分隔符方式,方法二将分隔符拼接在select语句中,即手工控制输出格式。 实践中,发现通过方法一导出来的数据具有很大的不确定性,这种方法导出来的数据再由sqlldr导入的时候出错的可能性在95%以上,尤其对大批量的数据表,如100万条记录的表更是如此,且导出的数据文件很大。而方法二导出的数据文件格式很规整,数据文件的大小也比方法一小很多。经这种方法导出来的数据文件再由sqlldr导入时,出错的可能性很小,基本都可以导入成功。

脚本实现:spool_test.sh
#!/bin/sh
db_user=test
db_pwd=oracle
db_serv=orcl
sqlplus -s $db_user/$db_pwd@$db_serv <<EOF
set trimspool on lin 120 pages 2000 newpage 1 heading off term off
spool test.txt
select id||'|'||name||'|'||type||'|'||to_number(to_char(sysdate,'yyyymmdd')) from t;
spool off
EOF

spool的更多相关文章

  1. spool命令

    最近工作中,需对数据进行比对.在此之前,则需将数据导出.想到以前用过的spool命令,实验一番,分享如下: 需建SQL执行脚本,内容如下: set feedback off   --关掉行数显示set ...

  2. 禁用nested loop join里的spool

    禁用nested loop join里的spool 转载自: https://blogs.msdn.microsoft.com/psssql/2015/12/15/spool-operator-and ...

  3. SQLSERVER中的假脱机spool

    SQLSERVER中的假脱机spool 我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么? 这几天在家里研究了一下,收集了很多网上的资料 假脱机是中文的翻译,而英文的名字叫做 spool 在徐老 ...

  4. SQL Lazy Spool Eager Spool

    https://www.simple-talk.com/sql/learn-sql-server/showplan-operator-of-the-week-lazy-spool/ The Lazy ...

  5. /var/spool/clientmqueue 下生成太多文件处理

    问题现象: linux操作系统中的/var/spool/clientmqueue/目录下存在大量文件. 原因分析: 系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发 ...

  6. sqlplus 中spool命令的简单用法

    spool基本格式: spool 路径+文件名 select col1||','||col2||','||col3||','||col4||'..' from tablename; spool off ...

  7. flume 使用 spool source的时候字符集出错

    1. 错误所在 -- ::, (pool--thread-) [ERROR - org.apache.flume.source.SpoolDirectorySource$SpoolDirectoryR ...

  8. /var/spool/postfix/maildrop 占用inode索引及磁盘空间解决办法

    1.问题表现和检查 运行df -i / 查看inode使用是否满: 2.查看/var/spool/postfix/maildrop是否有非常多的小文件,ls直接卡死等情况 解决: 删除小文件: cd ...

  9. 解决Centos关闭You have new mail in /var/spool/mail/root提示

    昨天搬到阿里云了. 装的系统是Centos 6.3的加固版 今天查看内存的时候 出现一天奇怪的提示 You have new mail in /var/spool/mail/root 有的时候每敲一下 ...

  10. SPOOL、SQLLOADER数据导出导入的一点小总结

    1.SQLLOADER的CONTROL文件 //**************************************************************************** ...

随机推荐

  1. Maven(八)Eclipse创建Web项目(复杂方式)

    1. 生成标准的Web工程结构 2. 勾选结尾为webapp的包 3. 生成的文件结构如下 3.1 生成的目录结构若存在错误,缺少servlet.api 3.1.1 添加步骤如下 4.生成后存在的缺点 ...

  2. Partition(hdu4651)2013 Multi-University Training Contest 5

    Partition Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  3. Advanced redirection features

    here are three types of I/O, which each have their own identifier, called a file descriptor: standar ...

  4. agc002E - Candy Piles(博弈论)

    题意 题目链接 Sol Orz SovitPower #include<bits/stdc++.h> #define Pair pair<int, double> #defin ...

  5. 2019-01-13 [日常]mov文件转换为gif

    因为需要将之前mac下用QuickTime录屏生成的文件(mov格式)转换成gif文件, 便于传到某些博客平台, 于是找到了这个转换工具, 已将原代码的命名中文化并简化. Ruby和视频转换都是新手, ...

  6. [Intellij] 在IntelliJ IDEA 中创建运行web项目

    安装工具 1.JDK7+ 2.IntelliJ Idea 工具(下载安装后,网上找注册码破解即可) 3.tomcat7+ 解压缩版 明确两个概念: 1.Project:类似于eclipse的works ...

  7. ViewPager实现滑动翻页效果

    实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...

  8. LockSupport的源码实现原理以及应用

    一.为什么使用LockSupport类 如果只是LockSupport在使用起来比Object的wait/notify简单, 那还真没必要专门讲解下LockSupport.最主要的是灵活性. 上边的例 ...

  9. Android为TV端助力 双缓存机制

    废话不多说,直接贴代码! 所谓的双缓存,第一就是缓存在内存里面,第二就是缓存在SD卡里面,当你需要加载数据时,先去内存缓存中查找,如果没有再去SD卡中查找,并且用户可以自选使用哪种缓存! 缓存内存和缓 ...

  10. mongodb安装失败与解决方法(附安装教程)

    安装mongodb遇到的一些坑 浪费了大量的时间 在此记录一下   主要是电脑系统win10企业版自带的防火墙  当然还有其他的一些坑 一般的问题在第6步骤都可以解决,本教程的安装步骤不够详细的话  ...