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
?
?
******************************************
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_object;
或select t2.username,t2.sid,t2.serial#,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#’;
最后恢復正常.