spool导出格式的问题
最近朋友提了个问题,通过sqlplus的spool导出数据,格式乱了,如下所示,
表中包含了几十个字段,包括VARCHAR2和NUMBER类型,
我们在sqlplus中,经常用到这几个显示配置参数,
(1) 设置行宽,set linesize 200,表示行宽被设置为200个字符。
(2) 设置列宽,column name format a40,设置name列为40个字符,a表示alphanumeric,是字符的意思。
(3) 设置页面记录,set pagesize 20,设置每20行为一页。
查询结果中,每列的宽度默认是根据该列定义的宽度显示的,例如name列定义20个字符,那么该列就以所定义的20为宽度,除非通过col name format a15限制该列的宽度。
但是因为sqlplus命令窗口的宽度有限,所以有的列定义为5000字符的,其最宽只能按照sqlplus命令行窗口的宽度来显示。
如下表,有字段定义为VARCHAR2(128),有的则定义为VARCHAR2(1),
temporary、secondary这几个字段值小,只定义了VARCHAR2(1),行的宽度会以字段的大小来定义展示,
owner字段值就很大,128个字符,其最宽只能按照sqlplus命令行窗口的宽度来显示,show linesize是80,owner显示的宽度是80,不能是128,
如果将temporary、secondary、owner混合查询,就出现了折行,
如果设置owner列宽度,就可以整行显示,
因此对这个需求,如果是检索所有的字段,确实展示会乱,如果就需要看导出的文本文件,可以选择col设置各个列宽,但是比较繁琐。再追问需求,其实他是想从Oracle导出数据到TeraData,实际不需要看文本文件,其实就可以定好输入的接口格式(或者通过程序,或者通过fastload),导出规定格式的数据,实现这个需求。
P. S. sqlplus的显示控制参数很多,可以参考,
set colsep' ' --行的标题列的分隔符
set linesize(line) --设置sqlplus输出的最大行宽
set pagesize --设置页面的最大行数 缺省为24,为了避免分页,可设定为0
set serveroutput on|off
set echo on --显示文件中的每条命令及其执行结果,缺省为on
set echo off --不显示文件中的命令,只显示其执行结果
set term on --查询结果既显示于假脱机文件中(spool指定输出的文件),又在SQLPLUS中显示
set term off --查询结果仅仅显示于假脱机文件中(spool指定输出的文件)
set heading off --让结果行的标题不显示,缺省为on
set heading on --让结果行的标题显示
set trimout on --去除标准输出每行的拖尾空格,缺省为off
set trimspool on --去除重定向(spool)输出每行的拖尾空格,缺省为off
set timing off --显示每条sql命令的耗时,缺省为off
set verify off --是否显示替代变量被替代前后的语句
近期更新的文章:
《最近碰到的一些问题》
《关于数据治理的读书笔记 - 什么是数据治理?》
《关于数据治理的读书笔记 - 数据治理、数据管理和数据管控的理解》
《通过Java得到语句的执行计划》
《MySQL时间分区的实现》
文章分类和索引:
《公众号900篇文章分类和索引》
spool导出格式的问题相关推荐
- Oracle通过SPOOL导出数据Excel、CSV、TXT格式
文章目录 1. SPOOL基础 2. SPOOL使用示例 3. 简化SPOOL导出的一个小(偷懒)脚本 <从来不需要解释 那些所谓奇怪的事 你是上天的恩赐 因为珍惜学会坚持--> 1. ...
- sqlplus SPOOL 导出网页文件
在用spool 导出数据的时候,如果直接导成excel, 那么在格式上比较路,比如一个字段占了2列,这个还是好的,有的占了办列,这个格式看上去还是很麻烦的,所以我们可以使用sqlplus 的marku ...
- oracle spool 分隔符_Oracle spool导出数据
Oracle spool导出数据 freezingsun 2月 7, 2014 Oracle spool导出数据已关闭评论 在工作中,有时需要将表中的数据查询出来,保存成txt格式或者csv格式,以便 ...
- Linux平台下Spool导出数据并发送到邮箱
原 Linux 平台下 Spool导出数据并发送到邮箱https://blog.csdn.net/tianlesoftware/article/details/5224489版权声明: https:/ ...
- 屏蔽×××S 2008报表导出格式
有时企业为了防止操作员将报表数据导出来进行二次加工,此时就需要对×××S的报表导出进行屏蔽.针对此需求,可通过修改配置文件:rsreportserver.config 来实现(该文件位于形如C:\Pr ...
- oracle spool循环导出文件,oracle 使用spool导出数据到文件
--oracle 使用spool导出数据到文件 需要将数据库中的数据以txt文本形式导出,可以用spool方式导出. --创建脚本文件 spool.sql --添加如下语句 SPOOL D:\work ...
- 使用spool导出数据
使用spool导出数据有时候也是一个比较好的选择,7万条数据导出需要10s,注意的是需要用@d:/spool.txt调用,set termout off才会生效不显示到屏幕.SQL语句和spool o ...
- endnote导出格式下载地址
endnote导出格式下载网站 可以选择需要下载的格式,然后放进endnote格式中,然后选择相应的格式即可导出对应格式的参考文献.(具体位置为endnote存放其它style的位置,放进那个文件夹即 ...
- SPOOL导出大量数据时,导出不全问题处理
近日在工作中使用spool方式,将oracle 中400万数据的表数据导出,其中需要关联几张大表,但数据输出为400万左右.在日常运行过程中,会偶尔出现spool导出不完全的情况. 在详细分析spoo ...
最新文章
- [转载] 七龙珠第一部——第035话 北方女孩
- Flash,一次Bug的思考
- bzoj 4753: [Jsoi2016]最佳团体
- [转]ESP8266使用详解
- centos下搭建nginx+tomcat实现集群负载与session复制
- .NET 6 Preview 6 Released
- deepin系统转为windows_windows系统下安装深度系统deepin
- 贝壳金控赵文乐:基于 Spring Cloud 的服务治理实践
- 在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?
- 话说地址栏的URL的最大长度
- Vue项目设置局域网链接访问
- Windows 已经激活,但是显示副本不是正版的解决办法
- 牛逼!这个网站可以帮助程序员命名变量和函数!
- 由Table_locks_waited想到的mysql 表锁问题
- B360主板i5 8400装Win7记录
- 树莓派Raspberry Pico RP2040 开发环境配置完全缝合终极版C-SDK
- 【打卡-Coggle竞赛学习2023年3月】对话意图识别
- 嵌入式C语音基础夯实备用实战
- cocos creator 显示截图并保存图片到手机
- 【图像去噪】基于matlab全变分算法图像去噪【含Matlab源码 626期】