問題現象:
在pl/sql編譯包或者是儲存過程procedure等,編譯一直未響應。
問題原因:
oracle 儲存過程或包被鎖,編譯不了
問題解決方法:
第一步:查詢儲存過程被哪些session鎖住而無法編譯select
*from dba_ddl_locks where name =
upper('
heb_sdb_pay_opr_pkg');
1.第二步:通過第一步得到的session_id,得到sid和serial#
select t.sid,t.serial# from v$session t where t.sid=&
session_id;1.
第三步:
kill
相關session
alter system kill session '
sid,serial#
'
結束被鎖的表
問題現象:
後台資料庫操作某乙個表時發現一直出於假死狀態,可能是該錶被某一使用者鎖定。
問題解決步驟:
第一步:查詢哪些表被使用者鎖住
select object_name, machine, s.sid, s.serial#
from **$locked_object l, dba_objects o, **$session s
where l.object_id = o.object_id
and l.session_id = s.sid;
1.2.
3.4.
第二步:找到被鎖的表,解鎖
--alter system kill session 'sid, serial#';
alter system kill session '23, 1647';
1.2.
ORACLE儲存過程被鎖
1.檢視是哪乙個儲存過程被鎖住 查v db object cache檢視 select from v db object cache where owner 過程的所屬使用者 and locks 0 2.檢視是哪乙個sid,通過sid可以知道是哪乙個session 查v access檢視 selec...
ORACLE 儲存過程被鎖 解鎖方法
一些oracle中的程序被殺掉後,狀態被置為 killed 但是鎖定的資源很長時間不釋放,有時實在沒辦法,只好重啟 資料庫。現在提供一種方法解決這種問題,那就是在oracle中殺不掉的,在os一級再殺。1.下面的語句用來查詢哪些物件被鎖 select object name,machine,s.si...
Oracle儲存過程被鎖無法編譯的解決
via 儲過程被鎖無法編譯的解決 select distinct s1.from v db object cache oc,v object dependency od,dba kgllock w,v session s1 where oc.name p sps inte ce and od.to ...