首頁 > 資料庫 > mysql教程 > SQL*Plus常用指令

SQL*Plus常用指令

大家讲道理
發布: 2016-11-10 11:44:28
原創
1223 人瀏覽過

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

1

SQL>conn / as sysdba

登入後複製

由資料庫驗證方式

1

SQL>CONN username/password @databaseIdentified AS sysdba

登入後複製

databaseIdentified是連結標識符,和資料庫無關,可以自由命名。
AS 後面是角色
2. 如何執行一個SQL腳本文件

1

2

SQL>start file_name

SQL>@ file_name

登入後複製
我們可以將多條sql語句保存在一個文本文件中,這樣當要執行這個文件中的所有的sql語句時,用上面的任一命令即可,這類似於dos中的批次。
 
3. 重新執行上一次執行的sql語句

1

SQL> run

登入後複製

 
4. 將顯示的內容輸出到指定檔案

1

SQL> SPOOL file_name

登入後複製

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

1

SQL> SPOOL OFF

登入後複製

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

1

SQL> desc table_name

登入後複製

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

1

COL columnname format a20

登入後複製

 
改變缺省的列標題

1

2

3

4

COLUMN column_name HEADING column_heading

For example:

Sql>select * from dept;

DEPTNO DNAME LOC

登入後複製
---------- --------- ------------------- ---------
10 ACCOUNTING NEW YORK

1

2

3

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語句。

1

SQL> SET WRA[P] {ON|OFF}

登入後複製

當輸出的行的長度大於設定的行的長度時(用set linesize n指令設定),當set wrap on時,輸出行的多於的字元會另起一行顯示,否則,會將輸出行的多於字元切除,不予顯示。
9.修改sql buffer中的目前行中,第一個出現的字串

1

2

3

4

5

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行成為目前行

1

L[IST] [n]

登入後複製

 
10.在sql buffer的目前行下面加一行或多行

1

I[NPUT]

登入後複製

 
11.將指定的文字加到sql buffer的目前行後面

1

2

3

4

5

A[PPEND]

SQL> select deptno,

2 dname

3 from dept;

DEPTNO DNAME

登入後複製
---------- --------------

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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語句

1

2

3

RUN

or

/

登入後複製
13.執行一個預存程序

1

EXECUTE procedure_name

登入後複製

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

1

HELP

登入後複製

15.顯示sql*plus系統變數的值或sql*plus環境變數的值

1

2

Syntax

SHO[W] option

登入後複製
1) .顯示目前環境變數的值:

1

Show all

登入後複製

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

1

Show error

登入後複製

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

1

show PARAMETERS [parameter_name]

登入後複製

4) . 顯示資料庫的版本:

1

show REL[EASE]

登入後複製

5) . 顯示SGA的大小

1

show SGA

登入後複製

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

1

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#'; 🎜最後恢復正常. 🎜

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板