spool
一、常用设置
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的更多相关文章
- spool命令
		最近工作中,需对数据进行比对.在此之前,则需将数据导出.想到以前用过的spool命令,实验一番,分享如下: 需建SQL执行脚本,内容如下: set feedback off --关掉行数显示set ... 
- 禁用nested loop join里的spool
		禁用nested loop join里的spool 转载自: https://blogs.msdn.microsoft.com/psssql/2015/12/15/spool-operator-and ... 
- SQLSERVER中的假脱机spool
		SQLSERVER中的假脱机spool 我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么? 这几天在家里研究了一下,收集了很多网上的资料 假脱机是中文的翻译,而英文的名字叫做 spool 在徐老 ... 
- SQL Lazy Spool Eager Spool
		https://www.simple-talk.com/sql/learn-sql-server/showplan-operator-of-the-week-lazy-spool/ The Lazy ... 
- /var/spool/clientmqueue 下生成太多文件处理
		问题现象: linux操作系统中的/var/spool/clientmqueue/目录下存在大量文件. 原因分析: 系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发 ... 
- sqlplus 中spool命令的简单用法
		spool基本格式: spool 路径+文件名 select col1||','||col2||','||col3||','||col4||'..' from tablename; spool off ... 
- flume 使用 spool source的时候字符集出错
		1. 错误所在 -- ::, (pool--thread-) [ERROR - org.apache.flume.source.SpoolDirectorySource$SpoolDirectoryR ... 
- /var/spool/postfix/maildrop 占用inode索引及磁盘空间解决办法
		1.问题表现和检查 运行df -i / 查看inode使用是否满: 2.查看/var/spool/postfix/maildrop是否有非常多的小文件,ls直接卡死等情况 解决: 删除小文件: cd ... 
- 解决Centos关闭You have new mail in /var/spool/mail/root提示
		昨天搬到阿里云了. 装的系统是Centos 6.3的加固版 今天查看内存的时候 出现一天奇怪的提示 You have new mail in /var/spool/mail/root 有的时候每敲一下 ... 
- SPOOL、SQLLOADER数据导出导入的一点小总结
		1.SQLLOADER的CONTROL文件 //**************************************************************************** ... 
随机推荐
- Java基础IO流(一)
			IO概念: 大多数应用程序都需要实现与设备之间的数据传输,例如键盘可以输入数据,显示器可以显示程序的运行结果等.在Java中,将这种通过不同输入输出设备(键盘,内存,显示器,网络等)之间的数据传输抽象 ... 
- virtualbox中设置u盘启动
			1.在磁盘管理中查看u盘的磁盘号X 2.管理员运行cmd,进入virtualbox目录 3.运行命令: VBoxManage internalcommands createrawvmdk -filen ... 
- CSS概念【记录】
			1.CSS语法 2.@规则 3.注释 4.层叠 5.优先级 6.继承 7.值 8.块格式化上下文 9.盒模型 10.层叠上下文 11.可替换元素 12.外边距合并 13.包含块 14.视觉格式化模型 ... 
- 前端了解即可:OSS客户端如何使用,以实现资源分离
			前一阵,应为项目需要,才简单整理了一下oss客户端的使用,做静态资源分离,及在项目中引入路径.接下来讲解记录一下,阿里云对象存储(Object Storage Service,简称OSS)客户端的基础 ... 
- ionic APP二维码插件 地址
			二维码插件地址第一个 https://github.com/kyocn/BarcodeScanner git网址 下载网址 https://github.com/kyocn/BarcodeSc ... 
- Java虚拟机(四)垃圾收集算法
			前言 在本系列上一篇文章中我讲到了垃圾标记算法,垃圾被标记后,GC就会对垃圾进行收集,垃圾收集有很多种算法,这篇文章就来介绍常用的垃圾收集算法的思想. 1.标记-清除算法 标记-清除算法(Mark-S ... 
- testNG安装一直失败解决方法
			1.在eclipse界面选择“Help”--"Eclipse Marketplace"中进行查找TestNG 然后进“install” (成功) 2.在eclipse界面选择“He ... 
- LeetCode单排日记
			初衷 之前有研究过一段时间数据结构与算法,但平时使用的不多,就连排序都很少用(自从JDK8有了Stream,就再也没有手写排序了.),所谓用进废退,时至今日,能记住的已经不多了,还记得之前有一次面试, ... 
- Python 常用的正则表达式
			校验数字的相关表达式: 功能 表达式 数字 ^[0-9]*$ n位的数字 ^\d{n}$ 至少n位的数字 ^\d{n,}$ m-n位的数字 ^\d{m,n}$ 零和非零开头的数字 ^(0|[1-9][ ... 
- Redis高可用 Sentinel
			官网: https://redis.io/topics/sentinel Redis的主从只能实现数据热备份的功能,主宕机后从无法自动接管服务,因此Redis推出了Sentinel的主从监控模式. S ... 
