declare job1 number;
begin
dbms_job.submit(job1,'TEST;',sysdate,'sysdate+5/24*60');
commit;
dbms_job.run(job1);
end;上面一段SQL是每5分钟执行TEST,我的问题是:
1、怎么停止job1,我用
declare job1 number;
 begin
 dbms_job.remove(job1);
 end;
告诉我“作业编号在作业队列中不是一个作业”。
2、如果数据库重新启动,那么作业还会不会继续起作用?如果不起作用,那怎么样才能让它一直执行?
3、如何查看当前有那些作业在执行?
4、上面的一段SQL能每5分钟执行一次吗,如果不能,错在那里?

解决方案 »

  1.   

    1.select * from all_jobs;
    找到这个job的job号
    exec dbms_job.remove(job号);
    2.会的
    3.通过查询all_jobs
    4.应该可以
      

  2.   

    1.哪个用户建的作业就要同一个用户去停止
    2.如果数据库重新启动,作业还会继续起作用---下一个周期
    3.在企业管理器里(要以管理服务方式登录才可以的)或者PL/SQL Developer工具
    4. 对
      

  3.   

    bzszp(www.bzszp.533.net) ,能给出相应的语句吗?
      

  4.   

    15:54:34 SQL> select job,what from all_jobs;       JOB WHAT
    ---------- ------------------------------
             1 zb_attemper('102');
            21 zb_attemper('101');
            41 check_job;已用时间:  00: 00: 00.31
    15:54:38 SQL> exec dbms_job.remove(21);
      

  5.   

    这个问题我也考虑了很长时间了,还是没有找到答案...不过楼主可以到: http://www-900.ibm.com/developerWorks/cn/java/index.shtml 看看,上面也许你您想要的东西!!...要是您找到了答案.请告诉我一下...关注中...