ORA-04021:timeout occurred while waiting to lock object TEST.PRO_TEST
在用sqldev重新编译存储过程时报如上错误。
解决方法:
1. 查看是否有DDL锁:
select session_id sid, owner, name, type,
mode_held held, mode_requested request
from dba_ddl_locks
where name = 'AP_STATB_SETTLE_PUSHMAIL'
2. 查看是否被锁:
select B.SID,b.USERNAME,b.MACHINE,,B.SERIAL#
FROM V$ACCESS A, V$SESSION B
WHERE A.SID=B.SID
and a.OBJECT = '存储过程名字'
and a.TYPE = 'PACKAGE'
3. 查出SESSION对应的spid:
select s.username,s.status,s.sid,p,spid
from v$session s,v$process p
where s.paddr=p.addr
and s.sid=xxx;
4. 杀掉会话:
alter system kill session ‘sid,serial#’;
如果session状态为killed,直接登录操作系统,杀掉进程:
Kill -9 spid