编译存储过程时出现ora-04021错误的解决方法
1.可能被锁住 查看v$locked
select b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status
from v$lock a , v$session b
where a.SID = b.SID
得到死锁session的SID,SERIAL#参看这个是否为你自己用户下的,然后kill掉session
2.可能被挂起 查看v$session_wait
select b.serial#,a.*
from v$session_wait a,v$session b
where a.sid = b.sid
得到等待的session的sid和serial#
3.查看dba_ddl_locks
select session_id sid, owner, name, type, mode_held held, mode_requested request
from dba_ddl_locks
where name = 'procedure_name';
然后把那session kill掉,一切ok!
oracle中kill session的方法
alter system kill session 'sid,SERIAL#' immediate;
1.可能被锁住 查看v$locked
select b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status
from v$lock a , v$session b
where a.SID = b.SID
得到死锁session的SID,SERIAL#参看这个是否为你自己用户下的,然后kill掉session
2.可能被挂起 查看v$session_wait
select b.serial#,a.*
from v$session_wait a,v$session b
where a.sid = b.sid
得到等待的session的sid和serial#
3.查看dba_ddl_locks
select session_id sid, owner, name, type, mode_held held, mode_requested request
from dba_ddl_locks
where name = 'procedure_name';
然后把那session kill掉,一切ok!
oracle中kill session的方法
alter system kill session 'sid,SERIAL#' immediate;