说梦话了,SID都不在,还让你找SPID
这种情况下已经比较麻烦了,估计之前已经kill过会话了,那么找一下v$process中存在,而在v$session中找不到对应会话的进程吧,minus一下(v$process.addr minus v$session.paddr,嵌套一层,查得进程情况),看看得到的进程能否判断可杀不可杀——因为这种情况下可能会返回比较多的进程,杀错了就不好玩了。
--1.根据存储过程名称(大写)查询死锁的会话id
select sid,serial#
from v$session
where sid = (select session_id from dba_ddl_locks where name='存储过程名称');
--2.kill掉会话
alter system kill session 'sid,serial#';