ORACLE中怎么查一条纪录被哪个用户锁了?

seewell 2001-07-14 11:21:17
加精
ORACLE中怎么查一条纪录被哪个用户锁了?
多谢!
...全文
264 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
daq_zcf 2002-02-08
  • 打赏
  • 举报
回复
----用这个可以查:
select b.sid,b.serial#,a.sql_text,b.sid,b.MACHINE,b.PROGRAM
from v$sqlarea a,v$session b,v$locked_object c
where a.address = b.sql_address and b.sid = c.SESSION_ID;
--select a.sid,a.serial#,a.machine,a.program,b.sql_text from
--v$session a,v$sqltext b,v$lock c where a.sid=c.sid and a.sql_address=b.address;
--connect system/manager@oracle;
--alter system kill session 'session.id,serial#';
seewell 2001-07-14
  • 打赏
  • 举报
回复
joyuce(joyuce)
thanks!

thank everyone here!
joyuce 2001-07-14
  • 打赏
  • 举报
回复
select s.sid,s.machine,o.object_name,l.oracle_username,l.locked_mode,
'ALTER SYSTEM KILL SESSION '''||s.sid||', '||s.serial#||''';' Command
from v$locked_object l,v$session s,all_objects o
where l.session_id=s.sid and l.object_id=o.object_id
seewell 2001-07-14
  • 打赏
  • 举报
回复
MACHINE 和 TERMIANAL都试了
这样得到的是等待的终端机器的名字

seewell 2001-07-14
  • 打赏
  • 举报
回复
得到的事等待的终端...
chfhy 2001-07-14
  • 打赏
  • 举报
回复
select machine from V$SESSION where ROW_WAIT_OBJ# !=-1 AND ROW_WAIT_ROW# = 查询纪录rowid
Fxx 2001-07-14
  • 打赏
  • 举报
回复
和v$session连接看一下
v$session的terminal子段存的是机器的名字
seewell 2001-07-14
  • 打赏
  • 举报
回复
大侠继续帮忙,谢谢!
seewell 2001-07-14
  • 打赏
  • 举报
回复
有点像了,但选出的是ORACLE用户的名字
我想选出锁这条纪录的机器的名字.
chfhy 2001-07-14
  • 打赏
  • 举报
回复
去试试:select username from V$SESSION where ROW_WAIT_OBJ# !=-1 AND ROW_WAIT_ROW# = 查询纪录rowid
seewell 2001-07-14
  • 打赏
  • 举报
回复
呵呵,高手指教了!
seewell 2001-07-14
  • 打赏
  • 举报
回复
谢谢大家

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧