编译存储过程时出现ora-04021错误的解决方法

编译存储过程时出现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;

你可能感兴趣的:(存储过程)