引起数据库对象无法DROP的原因是对象正在被执行,另一个是对象执行后资源未释放.

第一种情况是将可能被删除对象的调用情况取消或暂停.

第二种情况 在oracle中kill一个session采用如下语句:

SQL> conn /as sysdba  

已连接。

查看被锁的对象信息.  

SQL> select * from v$locked_object;  

执行以下SQL来找出此被锁的会话,记录下b.PID,b.SPID 的值

select a.sid,a.serial#,a.paddr,a.username,a.status,b.PID,b.SPID from v$session a,v$process b where username is not null and a.paddr = b.addr;


删除被锁的对象Session

alter system kill session 'a.sid,a.serial#' ;

最后在unix环境用kill -9 b.spid杀掉进程,在windows环境用orakill sid spid杀掉进程;

各位小主。尽请补充,谢谢

大家也可以看看数据库锁的相关介绍:http://blog.itpub.net/787018/viewspace-628986/