进入sqlplus后,不使用set语句进行设置,默认格式:
SQL> select * from jobs;
JOB_ID
---------- ----------------------------------- ---------- ----------
AD_PRES
AD_VP
AD_ASST
FI_MGR
FI_ACCOUNT Accountant
AC_MGR
AC_ACCOUNT Public Accountant
SA_MAN
SA_REP
PU_MAN
PU_CLERK
JOB_ID
---------- ----------------------------------- ---------- ----------
ST_MAN
ST_CLERK
SH_CLERK
IT_PROG
MK_MAN
MK_REP
HR_REP
PR_REP
19 rows selected.
set head off
set colsep '|'
set linesize 200 #每行最多显示200个字符,缺省为80
set feedback off
set pagesize 0
set numwidth 5
set newpage
set echo on
set wrap on
set termout off
set timing on
set null xxxx
set verify on
SET TRIMSPOOL
#以下为网络转载,未经测试,待下次有机会再测
——————————————————————————————————————————————
set autocommit on
set serveroutput on
在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。
SET TERMSPOOL {ON|OFF}
在用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
——————————————————————————————————————————————
vi exp.sql
select * from jobs;
附上spool模板
#!/bin/bash
. /home/lyl/.bash_profile
sqlplus -s $ORACLE_USERNAME/$ORACLE_PASSWORD@ORACLE_SID <<!!>/home/lyl/tmp/test.log
set head off
set echo off
set termout off
set trimspool
set pagesize 0
set feedback off
set linesize 1024
spool /home/lyl/tmp/test.txt
@exp.sql
spool off
exit
!!