```sql
plsql修改时提示 记录被另一个用户锁定
出现的原因是有人对某一条数据进行了修改,oracle会通过这个事务记住这条数据,若修改的人没有进行提交或进行回滚记录,oracle是不允许对这条数据在此进行修改的,在这种情况下你要进行修改数据,则会被阻止,提示"记录被另外一个用户锁定"。
现在就需要对其锁进行删除,以便达到修改数据的目的。
1、查看数据库锁,诊断锁的来源及其类型:
select object_id,session_id,locked_mode from v$locked_object;
2、查询锁与session连接
--查询 锁与session连接 用户名、serial#、时间
select s.username, s.sid, s.serial#, s.logon_time
from v$locked_object o, v$session s
where o.session_id = s.sid
order by s.logon_time ;
查询数据库 锁的session 的sid、serial# 杀死此次连接session
3、杀死连接session
-- 找到锁的连接 session 的sid、serial# 用于杀死session连接
alter system kill session 'sid,serial#' ;
-- 列如 sid=642 serial#=10439
alter system kill session '642,10439' ;
最后:在执行alter system kill session 'sid,serial#' ;时,可能会报一直报“ORA-00030: ??? ID ???”的错误,这样其实表示已经成功killed了,pmon会自动帮你清理的;重新去修改数据,就不会报“记录被另一个用户锁定”的错误了