在进行数据库修改的时候由于修改语句一直没有提交或者是提交失败, 就会造成表被锁住的情况.
或者是在进行修改操作的时候一直提交不了, 可能就是因为表被锁住了.
这个时候就需要进行查看究竟是不是由于锁表造成的
// 查询锁表的sql语句
select l.session_id sid,
s.serial#,
l.locked_mode,
l.oracle_username,
s.user#,
l.os_user_name,
s.machine,
s.terminal,
a.sql_text,
a.action
from v$sqlarea a, v$session s, v$locked_object l
where l.session_id = s.sid
and s.prev_sql_addr = a.address
and s.USERNAME='KLBATCH' // 此处填写用户名
order by sid, s.serial#;
结果如下图:
如果查出来有数据, 则需要将查出来的锁表用户杀掉
alter system kill session '581,4197'; // "SID, SERIAL#"