我的数据库当中执行一个很长时间的作业,这个作业只执行一次,但是中间数据库被重启了,这个作业就会死掉了,从User_jobs表中看不到,但是在Dba_job_Running表中还能看得到,那位高手知道如何强行删除这种作业啊?

解决方案 »

  1.   

    当一个job变为running时,是不能通过dbms_job这个包来清掉的
    你可以把这个session杀掉
    1、select * from dba_jobs_running;记录下那个job的sid
    2、select sid,serial# from v$session where sid=上面的sid
    3、sql>alter system kill session 'sid,serial#';
      

  2.   

    只能杀这个server进程了,取得这个进程的 SPID 号,就是操作系统的进程号,然后杀掉这个进程。
    select c.spid from dba_jobs_running a ,v$session b,v$process c
    where a.sid=b.sid and b.paddr=c.addr然后在操作系统上将 进程号为 c.spid 的这个进程杀掉