问题
在操作oracle表的时候忘记提交事务就会发生锁表,在开发中多个人同时操作表时就很容易出现这个问题
解决方案
找出被锁表的session
SELECT B.OWNER, B.OBJECT_NAME, A.SESSION_ID, A.LOCKED_MODE
FROM V$LOCKED_OBJECT A, DBA_OBJECTS B
WHERE B.OBJECT_ID = A.OBJECT_ID;
根据session找出对应的serial
SELECT B.USERNAME, B.SID, B.SERIAL#, LOGON_TIME
FROM V$LOCKED_OBJECT A, V$SESSION B
WHERE A.SESSION_ID = B.SID
ORDER BY B.LOGON_TIME;
解锁表
ALTER SYSTEM KILL SESSION 'session_id,SERIAL#';