我正在使用java,Spring和oracle数据库。有时我的数据库表被锁定。每次我要进入数据库并关闭会话时。有什么方法可以检查天气表或行是否被锁定并使用Java释放对其的锁定?请提出建议。
答案 0 :(得分:0)
您可以首先使用下面的SQL查询来识别当前锁定的对象:
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM, SQ.SQL_FULLTEXT,
S.LOGON_TIME FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P,
V$SQL SQ WHERE L.OBJECT_ID = O.OBJECT_ID AND L.SESSION_ID = S.SID AND
S.PADDR = P.ADDR AND S.SQL_ADDRESS = SQ.ADDRESS;
您甚至可以通过过滤OBJECT_NAME
值来查找特定表。
确定要终止的会话后,可以使用以下命令终止它:
alter system kill session 'SID,SERIAL#';