PL/SQL中job创建及删除

时间:2021-10-03 21:54:29
  1. plsql中学习job 
  2.  
  3. --学习job 
  4. --建表 
  5. create table test_job(para_datedate); 
  6. commit
  7.  
  8. insert into test_jobvalues(sysdate); 
  9. commit
  10. select * from test_job; 
  11.  
  12.  
  13. --建立存贮过程 
  14.  
  15. create orreplace procedure test_jobproce  as 
  16.  
  17. begin 
  18.  
  19. insert into test_jobvalues(sysdate); 
  20.  
  21. end test_jobproce; 
  22.  
  23. --建立job 
  24. --建立job后默认是执行的 
  25.  
  26. declare  test_job_really number; 
  27. begin 
  28. dbms_job.submit(test_job_really,'test_jobproce;',sysdate,'sysdate+1/1440'); 
  29. commit
  30. end
  31.  
  32.  
  33. ---停止job  25是建立的job test_job_really 
  34. begin 
  35. dbms_job.broken(25,true); 
  36. commit
  37. end
  38.  
  39.  
  40. --启动job 
  41. begin 
  42. dbms_job.run(25); 
  43. commit
  44. end
  45.  
  46.  
  47. --删除job 
  48.  
  49. begin  
  50.     
  51. dbms_job.remove(25); 
  52. commit
  53. end
  54.  
  55. --查看执行结果 
  56. select  * from test_joborder by test_job.para_datedesc
  57.  
  58. --查看job 
  59. select * from sys.user_jobs  
  60.  
  61. --使用下面的SQL查询是否JOB还在Running,前提是需要job执行时间不能过短 
  62.  
  63. select * from dba_jobs_running 
  64.  
  65.  
  66.  
  67.  
  68. 除了submit参数外,其余的几个参数有: 
  69.  
  70.         dbms_job.run(v_job);         //运行job 
  71.  
  72.         dbms_job.broken(v_job,true,next_date);        //停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。 
  73.  
  74.         dbms_job.remove(v_job);        //删除某个job 
  75.  
  76.         dbms_job.what(v_job,'sp_fact_charge_code;');        //修改某个job名 
  77.  
  78.         dbms_job.next_date(v_job,sysdate);        修改下一次运行时间