在sql/pl运行的过程,取消过程无法取消,而且sql/pl窗口也关闭了
直接在v$session 中active的用户已经无法找到运行此过程的用户
v$sql虽然能找到执行过程的记录,但是和v$session关联没有找到记录
从结果表查看记录说明过程还在跑
既然过程在跑那肯定有事务
从v$transaction找到了活动的事物,然后找到session的address
select sid,serial# from v$session v where v.SADDR='C0000004BCDFB660'
然后找到
select * from v$process where addr='C0000004BF904050'
alter system kill session '1403,14192';
ps -ef|grep 21980
kill -9 21980
这样进程就完全清除了
-------------------------------------------------------------------------
通过棉花的指点:
v$access和v$open_cursor或者x$kgllk,x$kglpn
begin
test_procedure();
end;
select * from v$access where object like upper('%test_procedure%')
select * from v$open_cursor where user_name='ACCT' and sql_text like '%test%'
可以很快找到sid,这个方法确实简单了很多。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/633084/viewspace-1028163/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/633084/viewspace-1028163/