oracle set命令小结

常用set小节

 

    在写脚本的时候,往往需要对输出的格式进行规范,我们常常用set语句在设置一些需要的格式规范。下面,列举了几个常用的set,和他们的应用。

SQL> set linesize 80;       //输出一行字符个数,缺省为80
SQL> set numwidth 12;     //
输出number类型域长度,缺省为1

SQL> set verify off        //可以关闭和打开提示确认信息old 1new 1的显示.

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

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

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

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

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

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

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

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

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

 

设置echo on,显示运行命令的语句

 


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

设置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 on
SQL
> set heading on
SQL>
set timing on
SQL>
set time on
00:54:11SQL> 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 WRITE

11 rows selected.

Elapsed:
00:00:01.07
00:54:34SQL> 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.02
00:55:05SQL>

Time on:显示时间

Feedback on:反映结果

 

Timing on:运行时间

 

Serveroutput on:设置服务器允许输出

Heading on:显示标题

 

Colsep | :用“|”作为列分割符

 

Pagesize 10:每页10行,包含标题和空行

 

 

Autotrace on:显示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=107Byte
          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>

 

更加详细说明见官方文档:

 

SET System Variable Summary

http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve040.htm#SQPUG075 

Oracle中的SET命令用于设置SQL*Plus环境变量和系统变量。以下是常用的SET命令及其详细解释: 1. SET AUTOCOMMIT ON/OFF:用于设置是否自动提交事务。当AUTOCOMMIT为ON时,每个SQL语句都会自动提交,而当AUTOCOMMIT为OFF时,需要手动提交。 2. SET DEFINE ON/OFF:用于设置是否开启变量替换。当DEFINE为ON时,SQL*Plus将会把变量替换为其值,而当DEFINE为OFF时,不会替换变量。 3. SET ECHO ON/OFF:用于设置是否显示SQL语句。当ECHO为ON时,SQL语句会显示在屏幕上,而当ECHO为OFF时,则不会显示。 4. SET FEEDBACK ON/OFF:用于设置是否显示操作结果。当FEEDBACK为ON时,SQL语句的操作结果会显示在屏幕上,而当FEEDBACK为OFF时,则不会显示。 5. SET HEADING ON/OFF:用于设置是否显示列标题。当HEADING为ON时,SQL语句的列标题会显示在屏幕上,而当HEADING为OFF时,则不会显示。 6. SET LINESIZE n:用于设置每行显示的字符数。n为一个整数,表示每行最多显示的字符数。 7. SET PAGESIZE n:用于设置每页显示的行数。n为一个整数,表示每页最多显示的行数。 8. SET SERVEROUTPUT ON/OFF:用于设置是否显示PL/SQL块的输出结果。当SERVEROUTPUT为ON时,PL/SQL块的输出结果会显示在屏幕上,而当SERVEROUTPUT为OFF时,则不会显示。 9. SET SQLPROMPT 'string':用于设置SQL*Plus的提示符。string为一个字符串,表示提示符的内容。 10. SET TERMOUT ON/OFF:用于设置是否输出结果到屏幕上。当TERMOUT为ON时,SQL语句的结果会输出到屏幕上,而当TERMOUT为OFF时,则不会输出结果。 以上是Oracle中常用的SET命令及其详细解释。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值