Oracle锁表现象及解决

今天在删除Oracle数据时,由于没有commit,出现了锁表现象。因此猜想当我们在对数据库的数据进行改动时,如果没有commit,那么Oracle就会自动锁表。锁表之后的现象为:不能对数据库中的数据进行和更改和删除。

解决方案(PLsql环境下):

1、以SYSDBA登陆数据库;

2、输入如下sql:

elect /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username user_name,
       o.owner,
       o.object_name,
       o.object_type,
       s.sid,
       s.serial#
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;

3、根据查询出的Sessionid和Serialid执行如下sql:

alter system kill session '968,10069';   --968,10069:Sessionid/Serialid
commit;

 

最后希望这点小发现希望能帮助到你,再有就是一定记住要commit!commit!commit!重要的话说三遍!!

你可能感兴趣的:(Oracle锁表现象及解决)