今天碰到一个执行语句等了半天没有执行:delete table XXX where ......,可是在select 的时候没问题。后来发现是在执行sql
select * from XXX for update 的时候没有commit,oracle将该记录锁住了。session
能够经过如下办法解决: oracle
先查询锁定记录 it
SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid; io
而后删除锁定记录 table
ALTER system KILL session 'SID,serial#';object
经过上述sql,问题终于解决了!date