首頁  >  文章  >  資料庫  >  SQL*Plus常用指令

SQL*Plus常用指令

大家讲道理
大家讲道理原創
2016-11-10 11:44:281126瀏覽

1.如何連結資料庫
由作業系統驗證方式:

SQL>conn / as sysdba

由資料庫驗證方式
SQL>CONN username/password @databaseIdentified AS sysdba

databaseIdentified是連結標識符,和資料庫無關,可以自由命名。
AS 後面是角色
2. 如何執行一個SQL腳本文件
SQL>start file_name 
SQL>@ file_name
我們可以將多條sql語句保存在一個文本文件中,這樣當要執行這個文件中的所有的sql語句時,用上面的任一命令即可,這類似於dos中的批次。
 
3. 重新執行上一次執行的sql語句
SQL> run

 
4. 將顯示的內容輸出到指定檔案
SQL> SPOOL file_name

在螢幕上的所有內容都包含在該檔案中,包括您輸入的sql語句。
 
5. 關閉spool輸出
SQL> SPOOL OFF

只有關閉spool輸出,才會在輸出檔案中看到輸出的內容。
 
6.顯示一個表格的結構
SQL> desc table_name

 
7. COL指令:
我之用格式化的方法
COL columnname format a20

 
改變缺省的列標題
COLUMN column_name HEADING column_heading 
For example: 
Sql>select * from dept; 
DEPTNO DNAME LOC
---------- --------- ------------------- ---------
10 ACCOUNTING NEW YORK
sql>col LOC heading location 
sql>select * from dept; 
DEPTNO DNAME location
--------- ------- --------------------- -----------
10 ACCOUNTING NEW YORK
8. Set 指令:
我一般之用
set linesize 1000
set wrap off
當SQL語句的長度大於LINESIZE時,顯示時是否截取SQL語句。
SQL> SET WRA[P] {ON|OFF}

當輸出的行的長度大於設定的行的長度時(用set linesize n指令設定),當set wrap on時,輸出行的多於的字元會另起一行顯示,否則,會將輸出行的多於字元切除,不予顯示。
9.修改sql buffer中的目前行中,第一個出現的字串
C[HANGE] /old_value/new_value 
SQL> l 
1* select * from dept 
SQL> c/dept/emp 
1* select * from emp
10.顯示sql buffer中的sql語句,list n顯示sql buffer中的第n行,並使第n行成為目前行
L[IST] [n]

 
10.在sql buffer的目前行下面加一行或多行
I[NPUT]

 
11.將指定的文字加到sql buffer的目前行後面
A[PPEND] 
SQL> select deptno, 
2 dname 
3 from dept; 
DEPTNO DNAME
---------- --------------
10 ACCOUNTING 
20 RESEARCH 
30 SALES 
40 OPERATIONS 
 
SQL> L 2 
2* dname 
SQL> a ,loc 
2* dname,loc 
SQL> L 
1 select deptno, 
2 dname,loc 
3* from dept 
SQL> / 
 
DEPTNO DNAME LOC 
---------- -------------- ------------- 
10 ACCOUNTING NEW YORK 
20 RESEARCH DALLAS 
30 SALES CHICAGO 
40 OPERATIONS BOSTON
12.再次執行剛才已經執行的sql語句
RUN 
or
/
13.執行一個預存程序
EXECUTE procedure_name

14.顯示sql*plus指令的幫助
HELP

15.顯示sql*plus系統變數的值或sql*plus環境變數的值
Syntax 
SHO[W] option
1) .顯示目前環境變數的值:
Show all

2) .顯示目前在建立函數、預存程序、觸發器、套件等物件的錯誤訊息
Show error

當創建一個函數、預存程序等出錯時,變可以用該命令查看在那個地方出錯及相應的出錯信息,進行修改後再次進行編譯。
3) .顯示初始化參數的值:
show PARAMETERS [parameter_name]

4) . 顯示資料庫的版本:
show REL[EASE]

5) . 顯示SGA的大小
show SGA

6) 顯示目前的使用者名稱
show user

 
 
6) 顯示目前的使用者名稱rrreee
 
 
** **********************************
ORA-00054: resource busy and acquire with NOWAIT specified
症狀:
locked_mode為2,3,4不影響DML(insert,delete,update,select)操作,
  但DDL(alter,drop等)操作會提示ora-00054錯誤。   
  有主外鍵約束時 update / delete ... ; 可能會產生4,5鎖。  
  DDL語句時是6的鎖。
處理方法: 
  以DBA角色, 查看目前資料庫裡鎖的情況可以使用下列SQL語句:
  select object_id,session_id,locked_mode from v$locked_objecterial; object_id,session_id,username, 212.s. t2.logon_time
  from v$locked_object t1,v$session t2
  where t1.session_id=t2.sid order by t2.logon_time;
  列,如果有長期出現的鎖定。  
  我們可以用下面SQL語句殺掉長期沒有釋放非正常的鎖:
  alter system kill session 'sid,serial#'; 🎜最後恢復正常. 🎜

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn