oracle未提交锁表,Oralce pl/sql因程序异常退出等原因导致事务未提交造成的锁表后如何解锁...

在使用pl/sql操作ORACLE数据库时,或者运行第三方程序操作ORACLE数据异常退出时,常常因为一些不可控的退出等原因,导致数据库表被锁而无法操作。此时如果还可以提交事务,则可以使用commit命令将事务提交,而绝大部分情况下,事务都无法手动提交,这就需要对锁进行解锁。

可以使用下列SQL语句进行操作:

1、查询被锁的表

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;

2、查询被锁的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;

3、杀掉SESSION进行解锁(使用第二步得到的session和serial#)

alter system kill session '9851,6854';

当然,如果因为权限问题,导致上述语句报错,可执行如下语句赋权

grant alter system to [你的数据库名];

【版权说明:仅允许非商业转载且请注明出处:Mac私塾 网址:http://macsishu.com】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值