轉自 http://www.jwinfo.com/html/technology/oracle/sqlplus.htm
SQL_Plus自動跟蹤
sqlplus 中
set autotrace on explain // 顯示執行計劃
set autotrace traceonly explain // 僅顯示執行計劃
set autotrace on // 顯示執行計劃、和統計數字
SQL_Plus EXPLAIN PLAN
執行計劃:EXPLAIN PLAN
SET STATMENT_ID='query1'
FOR
SELECT * FROM SYS;
首先建立PLAN_TABLE
執行文件:ORACLE_HOME/rdbms/admin/Utlxplan.sql
select lpad(' ',2*(level-1))||operation||' '||options||' '||object_name||' '
||decode(id,0,'Cost = '||position) step_description
from plan_table start with id = 0 and statement_id = 'query1'
connect by prior id= parent_id and statement_id='query1' order by id,position;
環境變量的含義
1.SET SQLBLANKLINES ON/OFF -- 打開或關閉SQL語句中是否支持空行
2.SET DEFINE ON/OFF -- 打開或關閉是否檢查SQL語句中的&符號,如果打開,遇到&符號時,要求用戶輸入值去替換.
3.SET HEAD ON/OFF -- TITLE是否顯示
4.SET PAGESIZE n -- 每頁顯示的行數,0不分頁
5.SET FEEDBACK ON/OFF -- 打開或關閉反饋信息
6.SET LINESIZE n -- 每行顯示的列數
7.SET TRIMSPOOL ON/OFF -- 去掉空格開關
常用命令
1.sqlplus /nolog在服務器上以內部用戶進入.可以做所有svrmgrl能做的工作
2.符號"-"表示連接符號
3.edit:調用外部編輯器編輯緩沖區中的SQL
4.save:保存緩沖區中SQL到文件中
5.get或@或start
6.spool filename ; spool off, 內容輸出到文件
7.def[ine][variable = text]:定義替代變量
def:顯示所有定義的常量和變量,如
SQL> def
DEFINE _SQLPLUS_RELEASE = "801060000" (CHAR)
DEFINE _EDITOR = "vi" (CHAR)
DEFINE _O_VERSION = "Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production" (CHAR)
DEFINE _O_RELEASE = "801060000" (CHAR)
DEFINE _RC = "0" (CHAR)
def X = "HELLO"(define x = "HELLO")
undef x(undefine x)
8.&:在SQL語句中出現的&號,要求輸入替代值,但是臨時的替代變量,語句結束就消失(&&表示多個同名的替代變量不重復提示,僅輸入一次)
9.var 定義內部變量
var x varchar2(30) //沒有日期類型
SQL> var
variable x
datatype VARCHAR2(30)
內部變量在PL/SQL塊中運用,而替代變量在SQL中使用
var x varchar2(8)
begin
select to_char(sysdate,'RRRRMMDD') into :x from dual;
end;
10.show:顯示環境變量
show all
show linesize
11.title
設置報表的上下標題
ttitle
btitle
center,left,right,skip
如:TTITLE LEFT "oracle Cop" CENTER "SUMMUY REPORT" SKIP 2
BTITLE RIGHT "Page " FORMAT 999 SQL.PNO SKIP 3
12.column
設置列的顯示
column colname format 格式
13.compute
生成匯總信息
14.break
顯示匯總信息
行編輯命令
L——列出當前緩沖區中的SQL語句
L n——顯示當前SQL語句中第n行
L n m——顯示當前SQL語句中第n行到m行
C/x/y——把第一行中第一次出現x換成y,這個命令對當前操作
DEL——刪除當前行
DEL n——刪除第n行
DEL n m——刪除n至m行
I——在當前行下面插入一新行
A text——在當前行的末尾附加文本
/——執行緩沖區中的語句