如果表被锁了,怎么解锁

如果表被锁了,怎么解锁

--用户名:system  口令:dream  数据库:****  连接为SYSDBA

create table a(a int,b int)

insert into a values(3,2);

insert into a values(4,1);

select * from a;

----------------------------------

lock table a in exclusive mode; --锁定表

select * from v$locked_object;  --查出被锁定的对象

select object_name, object_type from dba_objects where object_id=51360;

--(根据v$locked_object里的object_id提出来的)这样来查被锁定这个对象的名字,

--如果能确定是哪个TABLE被锁定并且要解锁,则再执行

select sid,serial#,machine,program from v$session where sid=146;

--(是根据v$locked_object对应锁定记录的session_id找出来的)然后

 --用来杀死这个回话

alter system kill session '146,160';

--如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,

--那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:

select spid, osuser, s.program  

from v$session s,v$process p  

where s.paddr=p.addr and s.sid=146;

原文地址:https://www.cnblogs.com/sunny-sl/p/6611992.html