1. 程式人生 > >sqlplus 命令列格式(set,col等)

sqlplus 命令列格式(set,col等)

SQL*PLUS(或 稱sqlplus)裡除了我們經常使用的sql語句外,還有另外一些命令,它們通過對標題、列標題、頁寬、頁長以及時間等引數的格式化操作來控制sql語 句的輸出的內容和格式,常見的比如"set timing on”,"set heading off”等。

基本的SqlPlus命令

命令 說明
remark 註釋
set headsep 標題換行
ttitle 設定輸出頁的頭標題
btitle 設定輸出頁的尾標題
column 對sql語句中的列進行格式化處理
break on 通知sqlplus在輸出結果中插入空格
compute sum 通知sqlplus計算小計
set linesize(line) 設定sqlplus輸出的最大行寬 --
set pagesize 設定頁面的最大行數
set newpage 設定頁面之間的空行數
spool sqlplus螢幕的檔案輸入輸出命令
註釋,同remark
-- 雙槓,註釋,同remark
set pause sqlplus螢幕輸出結果時在頁面之間停頓
save 儲存當前session最近的sql語句至指定的檔案中
host 返回到作業系統環境,類似!
edit 使用自定義的編輯器編輯指定檔案
define_editor 自定義sqlplus裡的編輯器
exit或quit 退出sqlplus

column

column是sqlplus裡最實用的一個命令,很多時候sql語句輸出的列寬度不合適而影響檢視,都需要用到這個命令來更改select語句中指定列的寬度和標題。大部分時候,我們可以簡寫column為col即可,主要有以下兩種用法:

  • 修改列寬度
         column c1 format a20           --將列c1(字元型)顯示最大寬度調整為20個字元
         column c1 format 9999999  --將列c1(num型)顯示最大寬度調整為7個字元
  • 修改列標題
         column c1 heading c2       --將c1的列名輸出為c2

示例如下:

未修改前的預設設定輸出:
SQL> select a.FILE_NAME,a.TABLESPACE_NAME,b.CURRENT_SCN from 
DBA_DATA_FILES a ,v$database b where a.TABLESPACE_NAME='USERS';

FILE_NAME
---------------------------------------------------------------------------
TABLESPACE_NAME                CURRENT_SCN
------------------------------ -----------
+DATAGRP/db/datafile/users.259.686941969
USERS                           7.3498E+10

修改後的輸出結果:
SQL> col FILE_NAME for a45                   --定義FILE_NAME列最大顯示45個字元
SQL> col TABLESPACE_NAME for a10             --定義該列最大顯示10個字元
SQL> col CURRENT_SCN for 999999999999        --定義該列最長顯示12個數字
SQL> col TABLESPACE_NAME heading 'TBS_NAME'  --定義該列輸出標題為"TBS_NAME”
SQL> /

FILE_NAME                                     TBS_NAME     CURRENT_SCN
--------------------------------------------- ---------- -------------
+DATAGRP/db/datafile/users.259.686941969      USERS        73497663251

SQL>


SQL> show sga


Total System Global Area 4198564584

bytes


Fixed Size                    746216

bytes


Variable Size             2013265920

bytes


Database Buffers          2181038080

bytes


Redo Buffers                 3514368


bytes


SQL> set line 100

SQL> show sga


Total System Global Area  4198564584 bytes

Fixed Size                         746216        bytes

Variable Size                     2013265920 bytes

Database Buffers              2181038080 bytes

Redo Buffers                    3514368       bytes

SQL>


這樣結果顯示就不會換行了。