Oracle的SQLPLUS中常用set语句

我们常常用set语句在设置一些需要的格式规范。下面,列举了几个常见set语句的应用。 

set echo on
--设置运行命令是是否显示语句
set feedback on
--设置显示“已选择XX行”
set colsep |
--设置列与列之间的分割符号
set pagesize 10
--设置每一页的行数
set serveroutput on
--设置允许显示输出类似dbms_output
set heading on
--设置显示列名
set timing on
--设置显示“已用时间:XXXX”
set time on
--设置显示当前时间
set autotrace on
--设置允许对执行的sql进行分析

set verify off                                 
--可以关闭和打开提示确认信息old 1和new 1的显示.
set colsep ''                                
--域输出分隔符
set linesize 4000                      
--输出一行字符个数,缺省为80
set pagesize 0                           
--输出每页行数,缺省为24,为了避免分页,可设定为0。
set num 16(或者set numwidth 16)
--输出number类型域长度,缺省为10
set trimspool on                         
--去除重定向(spool)输出每行的拖尾空格,缺省为off
set heading off                
--输出域标题,缺省为on
set feedback off               
--回显本次sql命令处理的记录条数,缺省为on
set termout off       
--显示脚本中的命令的执行结果,缺省为on
set timing off             
--显示每条sql命令的耗时,缺省为off
set trimout on        
--去除标准输出每行的拖尾空格,缺省为off
set echo off                   
--显示start启动的脚本中的每个sql命令,缺省为on

set termout off;
必须写在.sql文件中进行。
spool e:a
set termout off
select * from student;
spool off

Example:

SET TERMOUT OFF
--显示脚本中的命令的执行结果,缺省为on
SET ECHO ON
set echo on
--设置运行命令是是否显示语句
SET SERVEROUTPUT ON
--设置允许显示输出类似dbms_output
spool ....log
...
SET TERMOUT ON
SET ECHO OFF
SHOW ERRORS
SPOOL OFF


SQL> set echo on—————————————————设置运行命令是是否显示语句 

SQL> set feedback on———————————————-设置显示“已选择XX行” 

SQL> set colsep | —————————————————设置列与列之间的分割符号 

SQL> set pagesize 10———————————————–设置每一页的行数 

SQL> SET SERVEROUTPUT ON——————————-设置允许显示输出类似dbms_output.putline 

SQL> set heading on————————————————设置显示列名 

SQL> set timing on————————————————–设置显示“已用时间:XXXX” 

SQL> set time on—————————————————–设置显示当前时间 

SQL> set autotrace on———————————————–设置允许对执行的sql进行分析 

00:38:28 SQL> set echo on 

00:38:37 SQL> @E:echo.sql 

00:38:41 SQL> select status from v$datafile where rownum<6; 

STATUS 

------- 

SYSTEM 


ONLINE 


ONLINE 


ONLINE 


ONLINE 


已选择5行。 


已用时间: 00: 00: 01.08 

00:38:43 SQL> set echo off 

00:38:58 SQL> @E:echo.sql 

STATUS 

——- 

SYSTEM ONLINE 


ONLINE 


ONLINE 


ONLINE 


已选择5行。 


已用时间: 00: 00: 01.09 


00:39:08 SQL> 


SQL> set feedback on 

SQL> set colsep |SQL> set pagesize 10 

SQL> set serveroutput onSQL> set heading on 

SQL> set timing on 

SQL> set time on00:54:11 

SQL> SELECT FILE#, STATUS, ENABLED FROM V$DATAFILE; 


FILE#|STATUS |ENABLED———-|——-|———- 

1|SYSTEM |READ WRITE 

2|ONLINE |READ WRITE 

3|ONLINE |READ WRITE 

4|ONLINE |READ WRITE 

5|ONLINE |READ WRITE 

6|ONLINE |READ WRITE 

7|ONLINE |READ WRITE 


FILE#|STATUS |ENABLED———-|——-|———- 

9|ONLINE |READ WRITE 

10|ONLINE |READ WRITE 

11|ONLINE |READ WRITE 

12|ONLINE |READ WRITE11 rows selected.

 

Elapsed: 00:00:01.0700:54:34 


SQL> DECLARE 


00:55:00 2 BEGIN 


00:55:00 3 DBMS_OUTPUT.PUT_LINE(’===This is dbms_output.put_line!===’); 


00:55:00 4 END; 


00:55:02 5 / 

===This is dbms_output.put_line!=== 


PL/SQL procedure successfully completed. 


Elapsed: 00:00:00.0200:55:05 SQL> 


SQL> set autotrace on 

SQL> SELECT E.LAST_NAME, D.DEPARTMENT_NAME, D.LOCATION_ID 

2 FROM HR.EMPLOYEES E 

3 JOIN HR.DEPARTMENTS D 

4 USING (DEPARTMENT_ID); 


LAST_NAME DEPARTMENT_NAME LOCATION_ID 

————————- —————————— ———– 

King Executive 1700 

Kochhar Executive 1700 

De Haan Executive 1700 

Hunold IT 1400 

Ernst IT 1400…… 


106 rows selected. 


Execution Plan 

———————————————————- 

0 SELECT STATEMENT Optimizer=CHOOSE (Cost=5 Card=106 Bytes=318 

0) 


1 0 HASH JOIN (Cost=5 Card=106 Bytes=3180) 

2 1 TABLE ACCESS (FULL) OF ‘DEPARTMENTS’ (Cost=2 Card=27 Byt 

es=513) 


3 1 TABLE ACCESS (FULL) OF ‘EMPLOYEES’ (Cost=2 Card=107 Byte 

s=1177) 


Statistics 

———————————————————- 

7 recursive calls 

0 db block gets 

23 consistent gets 

12 physical reads 

0 redo size 

2801 bytes sent via SQL*Net to client 

580 bytes received via SQL*Net from client 

9 SQL*Net roundtrips to/from client 

0 sorts (memory) 

0 sorts (disk) 

106 rows processed 


SQL>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值