关于dbms_job的使用体会

oracle系统包中,有这样一个 dbms_job包。

这个包的主要作用可以在commond 命令窗口中,进行相应的多任务操作,提供一个多线程执行任务的类似功能。

这个包的主要使用方法:

variable job1 number;
Begin


sys.dbms_job.submit(:job1,'test_query.lv_test_query(''NBP20121231'',1000000);',sysdate,'sysdate+1/1440');


End;


/

创建一个job任务。

-------------------------------

运行一个job任务,上面创建完了以后,其实是进行了一个登记,下面的语句才是正式运行。

Begin


sys.dbms_job.run(:job1);


End;


/

commit; 

每个job 对应一个job号。其实和linux的进程号差不多。



不想运行了,直接运行下面语句:

begin
 dbms_job.remove(:job7);
end;
/
commit;


remove掉就行了。

差不多就这些。


其实还有些问题:

       我运行的时候配置参数是:

     select * from v$parameter; 找到最多运行多少个job。如果没有启用的话,应该value 为0 

  


同时遇到的问题,就是查看那些job 正在运行:

   

SELECT SID, R.JOB, LOG_USER, R.THIS_DATE, R.THIS_SEC
  FROM DBA_JOBS_RUNNING R, DBA_JOBS J
 WHERE R.JOB = J.JOB;


也可以看看这个,不过估计不如上一个语句来的好看。

select * from all_jobs;

差不多就这些。如果有更深的体会,会继续进行补充的。



你可能感兴趣的:(oracle)