oracle数据库锁表

在团队开发一个项目的时候,避免不了两个或两个以上的人同时操作某一数据库中的同一张表,这时候,如果一个用户没有提交事务,或者忘记提交事务,那么其他用户就不能对这张表进行操作了,这是很烦人的事情,下面是查询是哪个用户将表锁住了,并且生成解表语句的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;

posted on 2019-09-04 18:20  ~码铃薯~  阅读(301)  评论(0编辑  收藏  举报

导航