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文件 //**************************************************************************** ...
随机推荐
- MyBatis中映射器Mapper概述
MyBatis真正强大之处在于它的映射器.因为它异常强大并且编写相对简单,不仅比传统编写SQL语句做的更好并且能节省将近95%的代码量 XML中顶级元素汇总 cache: 给定命名空间的缓存配置 ca ...
- thinkphp——通过在线编辑器添加的内容在模板里正确显示(只显示内容,而不是html代码)
thinkphp编辑器回显问题如下: 解决办法如下: 对于编辑器发布的内容,前台模板显示为html的解决办法是: 在模板输出字段加入html_entity_decode()函数 也就是:PHP输出时的 ...
- JS函数浅析(一)
1.万物皆为对象 提起函数首先要知道对象,而对象又是js数据类型中的一种,所以我们从头开始. 1)javascript数据类型有哪些? 原始数据类型:number,undefined ...
- <自动化测试方案_3>第三章、怎么样实现自动化测试?(How)
第三章.怎么样实现自动化测试?(How) 自动化测试分为:代码单元自动化测试.API接口自动化测试.UI自动化测试 代码单元自动化测试,一般是无法做到的,因为项目的原因,代码单元是不做自动化,其测试是 ...
- Android Studio多渠道打包(二)
虽然多渠道打包的方式有很多种,那么今天我要说的通过工具的形式进行多渠道打包 首先,打开Android studio,找到顶部Build,点开 选择红色部分,里面的编辑框可以帮助我们更快的熟悉Gradl ...
- 淘宝开放平台使用WebClient,WebRequest访问时的错误提示导致麻烦
淘宝开放平台(TOP)提供OAuth2.0支持 通过C#的WebClient/WebRequest直接访问时会提示grant type is empty,这是一个非常恼人的错误,你会发现即使传了这个参 ...
- LeetCode题解之Find Bottom Left Tree Value
1.题目描述 2.问题分析 使用层序遍历思想 3.代码 int findBottomLeftValue(TreeNode* root) { if (root == NULL) ; queue<T ...
- [翻译]LVM中逻辑卷的最大大小限制
前言: 本文是对这篇博客Maximum Size Of A Logical Volume In LVM的翻译,敬请尊重原创和翻译劳动成果,那些随意转载的大爷们,好歹也自觉注明出处.谢谢! 英文原文地址 ...
- web前端(12)—— 页面布局2
本篇博文,主要就讲定位的问题,也就是页面布局里最重要的,本篇博文不出意外的话,也是css的最后一篇博文了 定位,position属性 定位有三种: 相对定位 绝对定位 固定定位 相对定位,positi ...
- 洗礼灵魂,修炼python(64)--爬虫篇—re模块/正则表达式(2)
前面学习了元家军以及其他的字符匹配方法,那得会用啊对吧?本篇博文就简单的解析怎么运用 正则表达式使用 前面说了正则表达式的知识点,本篇博文就是针对常用的正则表达式进行举例解析.相信你知道要用正则表达式 ...