SQLPlus 常用命令

dawn009發表於2014-04-29

SQLPlus提供了很多常用的命令,以下是常用命令的使用方法及示例。

1-> SQLPlus的登陸與退出

sqlplus -H | -V -H 將顯示sqlplus的版本及幫助資訊,-V將顯示其版本資訊
登陸語法:
  is: ([/][@] | /)
              [AS SYSDBA | AS SYSOPER] | /NOLOG
              
[/]:登陸的使用者名稱,密碼
@:資料庫的連線識別符號,當未指定該引數,則連線到預設的識別符號
AS SYSDBA | AS SYSOPER:這兩個引數描述使用資料庫管理員的許可權登陸
NOLOG:啟動未連線到資料庫的SQLPlus,在這之後可以使用conn登陸
下面是三種不同的登陸方式
[oracle@linux ~]$ sqlplus scott/tigger

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Mar 30 14:04:06 2010

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

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

[oracle@linux ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Mar 30 14:04:45 2010

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

SQL> conn scott    
Enter password: 
Connected.
SQL> exit /*使用exit或quit來退出*/ SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@linux ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Mar 30 14:05:44 2010

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

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

退出:使用使用exit或quit來退出,如例子中所演示的
2->help  獲得某一個命令的幫助資訊
SQL> help desc DESCRIBE -------- Lists the column definitions for a table, view, or synonym, or the specifications for a function or procedure. DESC[RIBE] {[schema.]object[@connect_identifier]
3->LIST [m][*] [n](簡寫L)顯示緩衝區的所有內容。* 當前行,m 第m行,n 第n行,m n 同時出現,m到n行
SQL> l
  1 select * from emp
  2 where sal > 2000
  3* and deptno = 20 SQL> l 2 3
  2 where sal > 2000
  3* and deptno = 20
4->/ 執行緩衝區的內容
SQL> l
  1 select * from emp
  2 where sal > 2000
  3 and deptno = 20
  4* and ename = 'SCOTT' SQL> /

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20  
5->n 設定當前行
SQL> 2
  2* where sal > 2000 SQL> 3
  3* and deptno = 20  
6->n text 用text內容替換第n行
SQL> l
  1 select * from emp
  2 where deptno = 20
  3* and sal > 2000 SQL> 2 where ename = 'SCOTT' SQL> l
  1 select * from emp
  2 where ename = 'SCOTT'
  3* and sal > 2000
7->;  對於已輸入完畢的SQL語句,輸入;號表示該語句輸入完畢。對於設定語句可以不使用分號,如上述的help desc
 

8->APPEND text(簡寫A text) 將text的內容追加到緩衝區尾部
SQL> l
  1* select * from emp SQL> a where sal > 2000;
  1* select * from empwhere sal > 2000
9->CHANGE/old/new(簡寫C /old/new) 將當前行中的old替換為new
SQL> l
  1 select * from emp
  2 where sal > 2000
  3* and deptno = 20 SQL> 3
  3* and deptno = 20 SQL> c /20/10
  3* and deptno = 10 SQL> l
  1 select * from emp
  2 where sal > 2000
  3* and deptno = 10
10->CHANGE/text(C/text) 刪除當前行中的text
SQL> l
  1 select * from emp
  2 where sal > 2000
  3* and deptno = 10 SQL> 3
  3* and deptno = 10 SQL> c /and deptno = 10
  3* SQL> l
  1 select * from emp
  2 where sal > 2000
  3*
11->CLEAR BUFFER(CL BUFF)清除整個SQL緩衝區
SQL> cl buff
buffer cleared SQL> l
SP2-0223: No lines in SQL buffer.
12->DEL 刪除當前行
SQL> l
  1 select * from emp
  2* where sal > 2000 SQL> del 2 SQL> l
  1* select * from emp
13->show user 顯示當前登陸的使用者
SQL> show user USER is "SYS" SQL> conn scott/tigger
Connected. SQL> show user USER is "SCOTT"
14->SAVE 儲存當前緩衝區的內容到檔案
SQL> l
  1 select *
  2 from emp
  3* where sal > 2000 SQL> save query.sql Created file query.sql 
15->GET 把磁碟上的命令檔案調入到當前緩衝區
SQL> cl buff
buffer cleared SQL> get query.sql 1 select *
  2 from emp
  3* where sal > 2000
16->START/@ filename 執行命令檔案 
SQL> get query.sql 1 select *
  2 from emp
  3* where sal > 2000 SQL> @query.sql
17->SET LINESIZE n 設定每行的字元數,預設80,如果一行的輸出內容大於設定的一行可容納的字元數,則折行顯示。 
SQL> select * from scott.emp where ename = 'SCOTT'; /*以下是未設定的結果*/ EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM ---------- ---------- --------- ---------- --------- ---------- ---------- DEPTNO ---------- 7788 SCOTT      ANALYST         7566 19-APR-87       3000
        20 SQL> set linesize 200 SQL> select * from scott.emp where ename = 'SCOTT'; /*以下是設定後的結果*/ EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
18->dual 偽表的使用,注意Oracle與MSSQL的差異,下面的操作MSSQL無需偽表即可完成,幾不需要from dual就可以完成一些特定的功能
SQL> select 3+2 from dual;

       3+2 ---------- 5
19->spool    filename 將接下來螢幕上輸入的所有內容輸出到檔案,包括輸入的SQL語句
20->spool off 需要使用off後,才能將內容輸出到檔案
更多:Linux (RHEL 5.4)下安裝Oracle 10g R2 使用Uniread實現SQLplus翻頁功能 ---------------------------------------------------------------------------------------------------------------------------------------
 

快捷參考

有關效能最佳化請參考

    Oracle硬解析與軟解析

    共享池的調整與最佳化(Sharedpool Tuning)

    Buffercache 的調整與最佳化(一)

    Oracle表快取(cachingtable)的使用

 

有關ORACLE體系結構請參考

    Oracle表空間與資料檔案

    Oracle密碼檔案

    Oracle引數檔案

    Oracle聯機重做日誌檔案(ONLINE LOG FILE)

    Oracle控制檔案(CONTROLFILE)

    Oracle歸檔日誌

    Oracle回滾(ROLLBACK)和撤銷(UNDO)

    Oracle資料庫例項啟動關閉過程

    Oracle10g SGA 的自動化管理

    Oracle例項和Oracle資料庫(Oracle體系結構)

 

有關閃回特性請參考

    Oracle閃回特性(FLASHBACK DATABASE)

    Oracle閃回特性(FLASHBACK DROP & RECYCLEBIN)

    Oracle閃回特性(Flashback Query、FlashbackTable)

    Oracle閃回特性(Flashback Version、Flashback Transaction)

 

有關基於使用者管理的備份和備份恢復的概念請參考

    Oracle冷備份

    Oracle熱備份

    Oracle備份恢復概念

    Oracle例項恢復

    Oracle基於使用者管理恢復的處理(詳細描述了介質恢復及其處理)

    SYSTEM表空間管理及備份恢復

    SYSAUX表空間管理及恢復

 

有關RMAN的備份恢復與管理請參考

    RMAN 概述及其體系結構

    RMAN 配置、監控與管理

    RMAN 備份詳解

    RMAN 還原與恢復

    RMANcatalog 的建立和使用

    基於catalog 建立RMAN儲存指令碼

基於catalog 的RMAN 備份與恢復

使用RMAN遷移檔案系統資料庫到ASM

    RMAN 備份路徑困惑(使用plus archivelog時)

 

有關ORACLE故障請參考

    ORA-32004的錯誤處理

    ORA-01658錯誤

    CRS-0215錯誤處理

    ORA-00119,ORA-00132 錯誤處理

    又一例SPFILE設定錯誤導致資料庫無法啟動

    對引數FAST_START_MTTR_TARGET= 0 的誤解及設定

    SPFILE錯誤導致資料庫無法啟動(ORA-01565)

 

有關ASM請參考

    建立ASM例項及ASM資料庫

    ASM 磁碟、目錄的管理

    使用 ASMCMD 工具管理ASM目錄及檔案

 

有關SQL/PLSQL請參考

    SQLPlus常用命令

    替代變數與SQL*Plus環境設定

    使用Uniread實現SQLplus翻頁功能

    SQL 基礎--&gtSELECT 查詢

    SQL 基礎--&gt NEW_VALUE的使用

    SQL 基礎--&gt 集合運算(UNION與UNION ALL)

    SQL 基礎--&gt 常用函式

    SQL 基礎--&gt 檢視(CREATEVIEW)

    SQL 基礎--&gt 建立和管理表

    SQL 基礎--&gt 多表查詢

    SQL 基礎--&gt 過濾和排序

    SQL 基礎--&gt 子查詢

    SQL 基礎--&gt 分組與分組函式

    SQL 基礎--&gt 層次化查詢(STARTBY ... CONNECT BY PRIOR)

    SQL 基礎--&gt ROLLUP與CUBE運算子實現資料彙總

    PL/SQL--&gt 遊標

    PL/SQL--&gt 異常處理(Exception)

    PL/SQL--&gt 語言基礎

    PL/SQL--&gt 流程控制

    PL/SQL--&gt PL/SQL記錄

    PL/SQL--&gt 包的建立與管理

    PL/SQL--&gt 隱式遊標(SQL%FOUND)

    PL/SQL--&gt 包過載、初始化

    PL/SQL--&gt DBMS_DDL包的使用

    PL/SQL--&gt DML 觸發器

    PL/SQL--&gt INSTEAD OF 觸發器

    PL/SQL--&gt 儲存過程

    PL/SQL--&gt 函式

    PL/SQL--&gt 動態SQL

    PL/SQL--&gt 動態SQL的常見錯誤

 

有關ORACLE其它特性

    Oracle常用目錄結構(10g)

    使用OEM,SQL*Plus,iSQL*Plus 管理Oracle例項

    日誌記錄模式(LOGGING、FORCE LOGGING 、NOLOGGING)

    表段、索引段上的LOGGING與NOLOGGING

    OralceOMF 功能詳解

    Oracle使用者、物件許可權、系統許可權  

    Oracle角色、配置檔案

    Oracle分割槽表

    Oracle外部表

    使用外部表管理Oracle 告警日誌(ALAERT_$SID.LOG)

    簇表及簇表管理(Index clustered tables)

    資料泵 EXPDP 匯出工具的使用

    資料泵 IMPDP 匯入工具的使用

    匯入匯出 Oracle 分割槽表資料

    SQL*Loader使用方法

    啟用使用者程式跟蹤

    配置非預設埠的動態服務註冊

    配置ORACLE 客戶端連線到資料庫

    systemsys,sysoper sysdba 的區別

    ORACLE_SID、DB_NAME、INSTANCE_NAME、DB_DOMIAN、GLOBAL_NAME

    Oracle補丁全集 (Oracle 9i 10g 11g Path)

    Oracle10.2.0.1 升級到10.2.0.4

    Oracle徹底 kill session

------------------------------------------&gt>
轉載於:http://blog.csdn.net/leshami/article/details/6629043

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