杀Session是最直接最有效的方式,可是记得必定要加immediate,不然你要等Oracle本身回收Session时,你的job才能完全死,你确定不相等,也等不起sql
alter system kill session '980,33237' immediate;
有同窗说杀掉Session后,过一会job本身又启动了,那是由于你的job又到了执行的时间点,例如你设置的job每5分钟执行一次,你如今给他杀了,过5分钟,它本身就又运行了。若是但愿它不在运行,job的enabled就不要勾选。服务器
若是你已经按照网上各类攻略杀了一遍,而且session
可是你在plsql developer中的runing job里还能看到它活着ide
那么来这里查一查操作系统
select * from v$scheduler_running_jobs;
一看,它依然活着,你再试试code
begin DBMS_JOB.BROKEN(2877536,true); commit; end;
结果blog
ORA-23421:job number 2877536 is not a jon in the job queyeit
alter system kill session '980,33237' immediate;
结果io
ORA-00030:User session ID does not exist.class
感受要疯了,按照网上的说法,去操做系统上杀?前提是你能连获得,在客户现场,你不必定有连Oracle服务器的权限。可是只要你有sys用户话,还有一线生机。
执行一下以下两条语句,以sys dba
ALTER INDEX I_JOB_JOB REBUILD ONLINE; ALTER INDEX I_JOB_NEXT REBUILD ONLINE;
而后,你再杀一下Session试试,发现能够了,不报ORA-00030,可是此次千万记得加上immediate,切记切记!