本人在 Oracle Sql Developer 中执行命令begin dbms_job.remove(jobno);    end;  commit ; 删除了所有job,执行命令select   *   from   dba_jobs; 只剩下系统自带的job,其它都已删除,成功! 
   然后奇怪的事情发生了。。
   备份该库,将其导入至 PL/SQL Developer(注意!不是之前那个工具) , 执行命令 select   *   from   dba_jobs; 其中有部分job仍然存在,继续执行 begin dbms_job.remove(41);    end;  commit ; 报错:“作业编号41在作业队列中不是一个作业”。打开左侧borwser中的jobs,其中也没有看到刚才未删除的job,刷新再刷新,仍未有。
    调整系统时间至job执行点,job竟然执行!这些job到底是存在还是不存在呢?为何阴魂不散?如何彻底删除?
    其次,在Oracle Sql Developer 如何查看job,软件界面上找到不查看job的入口。

解决方案 »

  1.   

    确认下41这个job是否存在
    select * from dba_jobs where job=41;
    勾选tools->browser,在browser界面的jobs可以看job(楼主前面不就是这么做的吗?)
      

  2.   

    在PL/SQL Developer中查询是存在的,但是在browser界面的jobs中却看不到这个41 job 。这个库是从Oracle Sql Developer  里备份出来的,在那里面查询确是不存在的,而且那里面的borwser里没有jobs这一项。
    由于我们服务器是64位的,所以没装 PL/SQL Developer ,装的是 Oracle Sql Developer 。这两软件不一样,后者是oracle公司出的。
      

  3.   

    试试:
    select * from dba_jobs where job=41 and schema_user=user;
    我想这个job=41不属于当前用户吧
      

  4.   

    确实查不到,不属于当前用户,我换那个所属的用户把那些清掉了,原来选择 All Objects ,jobs 中看不到其它用户的job 。另外哪位达人知道在Oracle Sql Developer 如何查看job,软件界面上找到不查看job的入口?晚上还没答案就结贴,谢谢 beyondme6 ! 
      

  5.   


    41这个job已经被最开始的删除了,所以第二次会报错这里可以运行的job是你删除的job吗。sql developer主要还是给开发用的,相对管理的功能要弱一些。