SQL*Plus 中的spool使用方法
来源:互联网 发布:php怎么开发app 编辑:程序博客网 时间:2024/05/21 18:40
在使用SQL*Plus生成报告文件的时候,往往会因为其默认的设置导致输出的结果非常的没有可读性,下面介绍一个日常中会被用到的一个脚本,其中包含一些格式化输出的set命令,为了方便理解,我会在每一条set命令之后紧跟着一个简单的解释,请慢慢体会。
sqlplus -s user_name/user_password << EOF >/dev/null
set echo off; -- 不显示脚本中的每个sql命令(缺省为on)
set feedback off; -- 禁止回显sql命令处理的记录条数(缺省为on)
set heading off; -- 禁止输出标题(缺省为on)
set pagesize 0; -- 禁止分页输出
set linesize 1000; -- 设置每行的字符输出个数为1000,放置换行(缺省为80 )
set numwidth 16; -- 设置number类型字段长度为16(缺省为10)
set termout off; -- 禁止显示脚本中命令的执行结果(缺省为on)
set trimout on; -- 去除标准输出每行的行尾空格(缺省为off)
set trimspool on; -- 去除spool输出结果中每行的结尾空格(缺省为off)
spool sql_output_file.txt;
... ...
这里输入待执行的SQL命令,SQL命令整个执行过程都会被记录在sql_output_file.txt文件中。
... ...
spool off;
exit;
EOF
经过上面的处理之后,spool出来的数据基本上没有多余的干扰数据了。
没有演示结果的技巧是无用的,也是枯燥的,所以,下面我来演示一下这个脚本的使用过程。
我们以输出all_objects视图的所有内容为例,进行演示。
ora10g@Tdb /home/oracle$ sqlplus -s sec/sec << EOF >/dev/null
set linesize 1000;
> set echo off;
set termout off;
> set feedback off;
> set heading off;
> set pagesize 0;
> set linesize 1000;
> set numwidth 16;
> set termout off;
> set trimout on;
> set trimspool on;
> spool sql_output_file.txt;
> select * from all_objects;
> spool off;
> exit;
> EOF
这里等待几秒钟的时间,查看结果文件sql_output_file.txt,就可以得到all_objects视图内的所有内容了,这个文件的格式是经过我们精心格式化之后的。
具体的导出文件sql_output_file.txt内容很长,不便于贴到这里。
可以使用cat命令查看输出文件的内容
ora10g@Tdb /home/oracle$ cat sql_output_file.txt
- SQL*Plus 中的spool使用方法
- sql*plus spool
- Sql*plus技巧之SPOOL应用
- oracle sql*plus set &spool介绍(一)
- oracle sql*plus set &spool介绍(二)
- oracle sql*plus set &spool介绍(二)
- oracle sql*plus set &spool介绍(二)
- oracle sql*plus set &spool介绍(一)
- Oracle利用SQL*PLUS的spool功能抽取数据
- oracle spool简介+sql plus set常用设置
- SQL*Plus 使用技巧--编辑功能使用方法
- SQL*PLUS中的替换变量(& &&)
- SQL SPOOL脚本示例
- SQL中的CASE使用方法
- SQL中的CASE使用方法
- SQL中的CASE使用方法
- SQL中的CASE使用方法
- SQL中的CASE使用方法
- WPF控件旋转
- flex profile
- DIVX
- 指标关注
- {初級} MySQL 語法筆記
- SQL*Plus 中的spool使用方法
- Java:重写equals()和hashCode()
- Apache虚拟主机的配置
- Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结
- 文本框回车解决方案(button) 兼容性好
- 横向图条表实现办法
- jsf+spring+hibernate 整合出现的错误集合
- GSM协议:Um接口协议
- Java中用Calendar类计算周和周的起始日期