怎樣查詢oracle被鎖的表

oracle中,可以利用SELECT語句查詢被鎖的表,該語句用于簡單查詢數據信息,語法“select*from v$locked_object a,dba_objects b where b.object_id=a.object_id”。

怎樣查詢oracle被鎖的表

本教程操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

怎樣查詢oracle被鎖的表

1.查詢引起了鎖表的原因

select?l.session_id?sid, ???????s.serial#, ???????l.locked_mode, ???????l.oracle_username, ???????s.user#, ???????l.os_user_name, ???????s.machine, ???????s.terminal, ???????a.sql_text, ???????a.action ??from?v$sqlarea?a,?v$session?s,?v$locked_object?l ??where?l.session_id?=?s.sid ??and?s.prev_sql_addr?=?a.address ??order?by?sid,?s.serial#;

2.查詢被鎖的表

select?b.owner,b.object_name,a.session_id,a.locked_mode?from?v$locked_object?a,dba_objects?b?where?b.object_id?=?a.object_id

3.查看是哪個session引起的

select?b.username,b.sid,b.serial#,logon_time?from??v$locked_object?a,v$session?b?where?a.session_id?=?b.sid?order?by?b.logon_time

4.殺掉對應進程即解鎖

alter?system?kill?session'135,397'

–其中135是sid 397是serial#

備注:該用戶必須擁有DBA權限,否則提示找不到表和視圖

推薦教程:《Oracle視頻教程

以上就是怎樣查詢

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享