在团队开发一个项目的时候,避免不了两个或两个以上的人同时操作某一数据库中的同一张表,这时候,如果一个用户没有提交事务,或者忘记提交事务,那么其他用户就不能对这张表进行操作了,这是很烦人的事情,下面是查询是哪个用户将表锁住了,并且生成解表语句的sql:
Select O.OWNER, O.OBJECT_NAME, O.OBJECT_TYPE, (SELECT C.MACHINE FROM V$SESSION C WHERE C.SID = S.SID), (SELECT C.PROGRAM FROM V$SESSION C WHERE C.SID = S.SID), S.SID, S.SERIAL#, 'alter system kill session ''' || S.SID || ',' || S.SERIAL# || ''';' Kill_Sql FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S WHERE L.OBJECT_ID = O.OBJECT_ID AND L.SESSION_ID = S.SID ORDER BY O.OBJECT_ID, XIDUSN DESC;
如果某个数据库被锁定了,下面是解锁sql:
alter user oraikes account unlock;