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語句
4. 將顯示的內容輸出到指定檔案
SQL> SPOOL file_name
登入後複製
在螢幕上的所有內容都包含在該檔案中,包括您輸入的sql語句。
5. 關閉spool輸出
只有關閉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行成為目前行
10.在sql buffer的目前行下面加一行或多行
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語句
13.執行一個預存程序
EXECUTE procedure_name
登入後複製
14.顯示sql*plus指令的幫助
15.顯示sql*plus系統變數的值或sql*plus環境變數的值
Syntax
SHO[W] option
登入後複製
1) .顯示目前環境變數的值:
2) .顯示目前在建立函數、預存程序、觸發器、套件等物件的錯誤訊息
當創建一個函數、預存程序等出錯時,變可以用該命令查看在那個地方出錯及相應的出錯信息,進行修改後再次進行編譯。
3) .顯示初始化參數的值:
show PARAMETERS [parameter_name]
登入後複製
4) . 顯示資料庫的版本:
5) . 顯示SGA的大小
6) 顯示目前的使用者名稱
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#'; 🎜最後恢復正常. 🎜