
查询具体得锁语句:
SELECT * FROM V$LOCK WHERE TABLE_ID = (SELECT OBJECT_ID FROM DBA_OBJECTS WHERE OBJECT_NAME = 'DATABASECHANGELOG' AND OWNER = 'HERMES');
输出结果:

查询详细的锁信息,包括会话和事务信息
SELECT
vlock.*,
vsess.SESS_ID,
vsess.SQL_TEXT,
vsess.TRX_ID,
vsess.STATE,
vsess.CREATE_TIME
FROM V$LOCK vlock
JOIN V$SESSIONS vsess ON vlock.TRX_ID = vsess.TRX_ID
WHERE vlock.TABLE_ID = (
SELECT OBJECT_ID FROM DBA_OBJECTS
WHERE OBJECT_NAME = 'DATABASECHANGELOG' AND OWNER = 'HERMES'
);
根据查询结果生成KILL语句
SELECT 'SP_CLOSE_SESSION(' || vsess.SESS_ID || ');' AS KILL_COMMAND
FROM V$LOCK vlock
JOIN V$SESSIONS vsess ON vlock.TRX_ID = vsess.TRX_ID
WHERE vlock.TABLE_ID = (
SELECT OBJECT_ID FROM DBA_OBJECTS
WHERE OBJECT_NAME = 'DATABASECHANGELOG' AND OWNER = 'HERMES'
)
AND vlock.LMODE IN ('X', 'IX');
输出:

根据执行结果进行删锁处理:

正常执行删除命令:

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




