oracle怎么查看锁表

整理:格言风 时间:2025-06-17 阅读:7

有时候在oracle操作中,我们会需要查看是否被锁表了,那么应该怎么查看呢?一起来看看吧!

操作方法

1

以下代码可以查看是否被锁表:

select a.object_name,b.session_id,c.serial#,c.program,c.username,c.command,c.machine,c.lockwait

from all_objects a,v$locked_object b,v$session c where a.object_id=b.object_id and c.sid=b.session_id;

2

查询锁表原因:

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

3

接上:

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#;

4

解锁方法:alter system kill session ’146′; –146为锁住的进程号,即spid。

5

查看被锁的表: select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.object_id

6

以上就是oracle查看锁表的方法,以及一些相关信息,看过之后如果觉得有帮助可以在下面给小编点个赞~

同类经验分享

站内热点

近期更新