【附錄】 sqlplus 常用命令集

yellowlee發表於2010-05-24

Sqlplus常用命令集

 

使用sqlplus連線資料庫:

C:\Documents and Settings\Administrator>sqlplus /nolog

 

SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 5 23 19:22:21 2010

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

SQL>

SQL> conn sys/sys@test as sysdba

已連線。

 

檢視sqlplus的幫助列表:

SQL> help index

 

Enter Help [topic] for help.

 

 @             COPY         PAUSE                    SHUTDOWN

 @@            DEFINE       PRINT                    SPOOL

 /             DEL          PROMPT                   SQLPLUS

 ACCEPT        DESCRIBE     QUIT                     START

 APPEND        DISCONNECT   RECOVER                  STARTUP

 ARCHIVE LOG   EDIT         REMARK                   STORE

 ATTRIBUTE     EXECUTE      REPFOOTER                TIMING

 BREAK         EXIT         REPHEADER                TTITLE

 BTITLE        GET          RESERVED WORDS (SQL)     UNDEFINE

 CHANGE        HELP         RESERVED WORDS (PL/SQL)  VARIABLE

 CLEAR         HOST         RUN                      WHENEVER OSERROR

 COLUMN        INPUT        SAVE                     WHENEVER SQLERROR

 COMPUTE       LIST         SET

 CONNECT       PASSWORD     SHOW

 

下面逐一講解列表中的命令關鍵字:

@

用來執行sql指令碼,比如儲存一個內容為select * from dual;test.sql指令碼,然後執行:

SQL> @ E:\test.sql

  2  ;

 

D

-

X

 

@@

@的功能相同,並且支援在指令碼中巢狀執行相同路徑下的其他sql比如,在test.sql中加入@@ test1.sql

test.sql相同的目錄下建立一個test1.sql,內容如下:select dummy from dual;

執行例項如下:

SQL> @ E:\test.sql;

 

D

-

X

 

 

D

-

X

 

/

執行sql或者plsql

 

Accept

讀取一行,並儲存在指定的使用者變數中

ACC[EPT] variable [NUM[BER]|CHAR|DATE] [FOR[MAT] format] [DEF[AULT] default]
[PROMPT text|NOPR[OMPT]] [HIDE]

 

Append

當前行後面追加字串,例子:

SQL> select * from dual;

 

D

-

X

 

SQL> append  where 1=1;

  1* select * from dual where 1=1

 

Archive log

ARCHIVE LOG {LIST|STOP}|{START|NEXT|ALL|integer } [TO destination]

list歸檔模式檢視:

SQL> archive log list

資料庫日誌模式            存檔模式

自動存檔             啟用

存檔終點            USE_DB_RECOVERY_FILE_DEST

最早的聯機日誌序列     51

下一個存檔日誌序列   53

當前日誌序列           53

Stop|start自動歸檔禁用啟用

Next人工歸檔下一個已經寫入但並未歸檔的聯機重做日誌組

All人工歸檔所有未歸檔的聯機重做日誌組

 

Attribute

ATTRBUTE [type_name.attribute_name [option...]]

指定顯示屬性的物件列
Eg.: ATTRIBUTE dual.dummy FORMAT A20

 

Break

抑制顯示給定列的重複值

顯示時跳過給定值的行,即空行的設定

report的結尾列印每次對給定列定義的計算(結合compute命令)

例子如下:

SQL> BREAK ON deptno SKIP 1 ON job

SQL> COMPUTE SUM OF sal ON job

SQL> COMPUTE AVG OF sal ON job

SQL> SELECT deptno, job, ename, sal

  2  FROM scott.emp

  3  WHERE job IN ('MANAGER')

  4  ORDER BY deptno, job;

 

    DEPTNO JOB       ENAME             SAL

---------- --------- ---------- ----------

        10 MANAGER   CLARK            2450

           *********            ----------

           avg                        2450

**********                      ----------

sum                                   2450

 

        20 MANAGER   JONES            2975

           *********            ----------

           avg                        2975

**********                      ----------

sum                                   2975

 

    DEPTNO JOB       ENAME             SAL

---------- --------- ---------- ----------

 

        30 MANAGER   BLAKE            2850

           *********            ----------

           avg                        2850

**********                      ----------

sum                                   2850

 

 

SQL>

 

Btitle

在每個報表頁底部設定一個格式化的title,或當前的btitle的定義列表

 

Change

當前緩衝行的文字變化

 

Clear

清楚當前的breaks或者columns的設定

 

Column

定義給定列的顯示格式

 

Compute

計算和列印摘要行,使用變數的標準計算,比如sumavg

 

Connect

連線一個給定的使用者

 

Copy

Copy一個查詢的結果到本地或者遠端的表中。可以實現資料複製,例項:

SQL> copy from scott/scott@test to test/test@test replace emp using -

> select * from emp;

 

陣列提取/繫結大小為 15(陣列大小為 15)

將在完成時提交。(提交的副本為 0)

最大 long 大小為 80(long 80)

EMP 已建立。

 

15 行選自 scott@test

   15 行已插入 EMP

   15 行已提交至 EMP (位於 test@test)

 

SQL> select count(*) from test.emp;

 

  COUNT(*)

----------

        15

 

Define

定義一個使用者變數,並指定一個char值,

 

Del

刪除一行或多行緩衝

 

Describe

列出給定表或者檢視或者同義詞的列的定義,或者函式和儲存過程引數的定義

 

Disconnect

提交更改,斷開當前使用者連線,但不會退出sqlplus

 

Edit

編輯命令,可以呼叫host osedit命令編輯文字

 

Execute

執行plsql語句

 

Exit

返回host

 

Get

裝載一個host的檔案到sql緩衝,比如:

SQL> list

  1* select count(*) from test.emp

SQL> get E:\test.sql

  1  select * from dual;

  2* @@ test1.sql;

SQL> list

  1  select * from dual;

  2* @@ test1.sql;

SQL>

 

Help

幫助命令

 

Host

返回宿主os,並可以加host的命令以執行

 

Input

當前緩衝行增加一行或者多行

 

List

列出緩衝內的sql內容

 

Password

Allows a password to be changed without echoing the password on an input device.

 

Pause

顯示給定的文字內容,停止,等待使用者輸入後返回

 

Print

顯示給定繫結變數的當前值

 

Prompt

傳送文字資訊到使用者螢幕

 

Quit

退出sqlplus,返回到os

 

Recover

可以在一個或多個表空間,資料檔案,或者整個資料庫進行介質恢復

 

Remark

指令碼註釋開始

 

Repfooter

設定報表的footer

 

Repheader

設定報表的header

 

Run

列出和執行當前緩衝行中的sql命令或者plsql

 

Save

儲存sql緩衝內容

SQL> list

  1  select * from dual;

  2* @@ test1.sql;

SQL> save e:\test2.sql

已建立 file e:\test2.sql

 

Set

設定當前session系統變數,主要用來:

資料顯示的寬度

Html格式化

列頭的列印與否

每頁的行數

 

Show

顯示系統引數值

SQL> show sga

 

Total System Global Area  595591168 bytes

Fixed Size                  1250332 bytes

Variable Size              88083428 bytes

Database Buffers          499122176 bytes

Redo Buffers                7135232 bytes

SQL> show parameter log_archive_start

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- -------

log_archive_start                    boolean     FALSE

 

spool

儲存查詢結果到os檔案

 

startup/shutdown

startup  force|restrict|pfile=filename|quiet|mount|nomount

startup open預設的是open,開啟資料庫,允許資料庫的訪問,當前例項的控制檔案中所描述的所有檔案都已經開啟

startup mount 掛載資料庫,不允許資料庫使用者的訪問,但sysdba可以,當前例項的控制檔案被開啟,資料檔案並未開啟

startup nomount 初始化init檔案,分配sga,啟動資料庫後臺程式,沒有開啟控制檔案和資料檔案,沒有掛載資料庫,不能有任何資料庫訪問

startup pfile=filename 指定使用pfile啟動資料庫

startup force 終止當前資料庫的執行,重啟資料庫

startup restrict 只允許有restricted session許可權的使用者文件資料庫

startup recover 啟動資料庫,並開始介質恢復

shutdown normal 預設的關閉資料庫,不允許新的連線,等待會話結束,等待事務結束,關閉資料檔案

shutdown transactional 不允許新的連線,不等待會話結束,等待事務結束

immediate 不允許新的連線,不等待會話結束,不等待事務結束,,沒有結束的事務自動rollback

abort:不允許新的連線、不等待會話結束、不等待事務結束、不做檢查點且沒有關閉資料檔案。啟動時自動進行例項恢復。

 

Whenever oserror

Performs the specified action Exits SQL*Plus if an operating system command generates an error.

Whenever sqlerror

Performs the specified action Exits SQL*Plus if a SQL command or PL/SQL block generates an error

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16179598/viewspace-663580/,如需轉載,請註明出處,否則將追究法律責任。

相關文章