格式化sqlplus的输出

进入sqlplus后,不使用set语句进行设置,默认格式:

 

SQL> select * from jobs;

JOB_ID     JOB_TITLE                           MIN_SALARY MAX_SALARY     #这行是head
---------- ----------------------------------- ---------- ----------
AD_PRES    President                                20080      40000
AD_VP      Administration Vice President            15000      30000
AD_ASST    Administration Assistant                  3000       6000
FI_MGR     Finance Manager                           8200      16000
FI_ACCOUNT Accountant                                4200       9000
AC_MGR     Accounting Manager                        8200      16000
AC_ACCOUNT Public Accountant                         4200       9000
SA_MAN     Sales Manager                            10000      20080
SA_REP     Sales Representative                      6000      12008
PU_MAN     Purchasing Manager                        8000      15000
PU_CLERK   Purchasing Clerk                          2500       5500

JOB_ID     JOB_TITLE                           MIN_SALARY MAX_SALARY
---------- ----------------------------------- ---------- ----------
ST_MAN     Stock Manager                             5500       8500
ST_CLERK   Stock Clerk                               2008       5000
SH_CLERK   Shipping Clerk                            2500       5500
IT_PROG    Programmer                                4000      10000
MK_MAN     Marketing Manager                         9000      15000
MK_REP     Marketing Representative                  4000       9000
HR_REP     Human Resources Representative            4000       9000
PR_REP     Public Relations Representative           4500      10500

19 rows selected.             #这行是feedback,默认6行以上才回显示

 

set head off   #不显示head,以空白行代替

set colsep '|'  #每个column以管道符间隔

 

 

set linesize 200 #每行最多显示200个字符,缺省为80

set feedback off   #不显示feedback,默认6行以上才显示,set feedback 1,表示大于1行就会显示

set pagesize 0     #设置每页显示的行数,默认是24,设置成0表示不分页

set numwidth 5     #设置number类型的长度,缺省为10,此处设置为5,number长度大于5的显示为####

set newpage     #在页头留0条空行,设置为1,表示留1条空行

 

 

set echo on    #在使用@执行sql脚本时,是否显示脚本命令。on为显示

set wrap on    #当输出的行多出linesize中设置的行时,另起一行显示,如设置为off,着多出的部分不显示

               #+ 不显示时,会返回“truncating (as requested) before column MIN_SALARY”类似的回显

set termout off    #在使用@执行sql脚本时,是否显示脚本中的命令的执行结果,缺省为on

set timing on        #显示每个sql命令所花的时间

set null xxxx        #将null的字段“显示”为xxxx

set verify on        #当使用&变量时,提示变量修改之前和之后的值

 

SET TRIMSPOOL on   #将SPOOL输出中每行后面多余的空格去掉

#以下为网络转载,未经测试,待下次有机会再测

——————————————————————————————————————————————

set autocommit on   #打开当前session对修改的数据进行自动提交的功能。

set serveroutput on  #是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息

在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。

SET TERMSPOOL {ON|OFF}   #在11g中使用时报错,没有这个选项
在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。

SET SQLBLANKLINES ON  #遇到空行时不认为语句已经结束,从后续行接着读入。
Sql*plus
中,不允许sql语句中间有空行,这在从其它地方拷贝脚本到sql*plus中执行时很麻烦.

 

设置DBMS_OUTPUT的输出
SET SERVEROUTPUT ON BUFFER 20000
用dbms_output.put_line('strin_content');可以在存储过程中输出信息,对存储过程进行调试
如果想让dbms_output.put_line(' abc');的输出显示为:
> abc,而不是SQL>abc,则在SET SERVEROUTPUT ON后加format wrapped参数。

 

set markup html  #输出的数据为html格式 

 

——————————————————————————————————————————————

vi exp.sql

select * from jobs;

 

 

附上spool模板

 

#!/bin/bash                              #声明脚本使用的是bash

. /home/lyl/.bash_profile                #加载该用户的环境变量

 

sqlplus -s $ORACLE_USERNAME/$ORACLE_PASSWORD@ORACLE_SID <<!!>/home/lyl/tmp/test.log   

                               -s 表示安静模式,另外将sqlplus中的回显,写入test.log中

set head off       #不显示head

set echo off       #在使用@执行sql脚本时,是否显示脚本命令。on为显示

set termout off    #在使用@执行sql脚本时,是否显示脚本中的命令的执行结果,缺省为on

set trimspool on   #将每行行尾多余的空格去掉

set pagesize 0     #不分页

set feedback off   #不显示freeback

set linesize 1024  #每行最多显示1024个字符

spool /home/lyl/tmp/test.txt     #想显示保存到/home/lyl/tmp/test.txt文件中

@exp.sql

spool off

exit

!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值