select a.*,b.NAME,b.*,c.SESS_ID from v$lock a left join sysobjects b on b.ID=a.TABLE_ID left join v$sessions c on a.TRX_ID=c.TRX_ID
where b.NAME = 'DP_ProjectSectionLargeScreen_LRVIEW' and c.SESS_ID=140335442297512
-- 生成终止会话的SQL语句
SELECT 'SP_CLOSE_SESSION(' || c.SESS_ID || '); -- 终止会话,锁定表: ' || b.NAME AS KILL_COMMAND
FROM V$LOCK a
LEFT JOIN SYSOBJECTS b ON b.ID = a.TABLE_ID
LEFT JOIN V$SESSIONS c ON a.TRX_ID = c.TRX_ID
WHERE b.NAME = 'DP_ProjectSectionLargeScreen_LRVIEW'
AND b.SCHNAME = 'PS_JTXM'
AND c.SESS_ID IS NOT NULL;
-- 直接执行终止操作(谨慎使用)
BEGIN
FOR rec IN (
SELECT c.SESS_ID
FROM V$LOCK a
LEFT JOIN SYSOBJECTS b ON b.ID = a.TABLE_ID
LEFT JOIN V$SESSIONS c ON a.TRX_ID = c.TRX_ID
WHERE b.NAME = 'DP_ProjectSectionLargeScreen_LRVIEW'
--AND b.SCHNAME = 'PS_JTXM'
AND c.SESS_ID IS NOT NULL
) LOOP
SP_CLOSE_SESSION(rec.SESS_ID);
DBMS_OUTPUT.PUT_LINE('已终止会话: ' || rec.SESS_ID);
END LOOP;
END;