dbms_job dbms_scheduler简单比较

---------------------------陈旧的-------------------------------------
/*
--------------------- 创建job ---------------------------  
variable jobno number;
 
  begin
   dbms_job.submit(jobno,
   ‘book_yuqi011;‘,
   sysdate,
   ‘sysdate+1/24/60‘);
   commit;
end;

/

------------------ 检查job状态 --------------------
DECLARE
  jobno02 number;
 
  BEGIN
SELECT JOB INTO JOBNO02 FROM USER_JOBS;
DBMS_OUTPUT.put_line(JOBNO02);
DBMS_JOB.remove(JOBNO02);
--SELECT JOB INTO JOBNO02 ,NEXT_DATE,NEXT_SEC,FAILURES,BROKEN FROM USER_JOBS;
END;

------------------ 删除job --------------------
BEGIN
  DBMS_JOB.remove(3);
  COMMIT;
  END;
*/

---------------------------最新的-------------------------------------

--------------------- 创建job ---------------------------
BEGIN
  SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME            => ‘JOB_BOOK_YUQI011‘,           --指定job的名称
                                JOB_TYPE            => ‘STORED_PROCEDURE‘,           --指定job操作的类型
                                JOB_ACTION          => ‘BOOK_YUQI‘,                  --指定job的操作
                                START_DATE          => TO_DATE(‘20-08-2015 17:13:20‘, ‘DD-MM-YYYY HH24:MI:SS‘),     --指定job开始运行的时间
                                REPEAT_INTERVAL     => ‘FREQ=MINUTELY;INTERVAL=1‘,                                  --指定job运行的频率 ,常见的 daily、minutely
                        --      END_DATE            => TO_DATE(‘21-08-2015 17:13:20‘, ‘DD-MM-YYYY HH24:MI:SS‘),     --指定job结束运行的时间
                                JOB_CLASS           => ‘DEFAULT_JOB_CLASS‘,                                         --指定job的级别
                                ENABLED             => TRUE,                                                        --创建job后是否启用job
                                AUTO_DROP           => FALSE,                                                       --job是否自动删除 (默认情况下 job运行成功后,会自动删除)
                                COMMENTS            => ‘MY NEW JOB‘);                                               --job的注释,可有可无
END;

--------------------- 运行job ---------------------------
BEGIN
   SYS.DBMS_SCHEDULER.RUN_JOB(JOB_NAME=>‘JOB_BOOK_YUQI022‘,USE_CURRENT_SESSION =>TRUE);
END;

--------------------- 检查job的运行状态 ---------------------------
SELECT JOB01.job_namE,JOB01.JOB_ACTION,JOB01.start_date,JOB01.REPEAT_INTERVAL,JOB01.AUTO_DROP,JOB01.STATE,JOB01.run_count
FROM USER_SCHEDULER_JOBS JOB01
WHERE JOB_CREATOR=‘DEV‘;

SELECT JOB_RUN.LOG_ID,JOB_RUN.LOG_DATE,JOB_RUN.OWNER,JOB_RUN.JOB_NAME,JOB_RUN.STATUS,JOB_RUN.CPU_USED
FROM USER_SCHEDULER_JOB_RUN_DETAILS JOB_RUN
WHERE  JOB_NAME=‘JOB_BOOK_YUQI011‘ ORDER BY LOG_DATE DESC;

--------------------- 删除job---------------------------
BEGIN
   SYS.DBMS_SCHEDULER.DROP_JOB(JOB_NAME=>‘JOB_BOOK_YUQI‘);
END;

时间: 2024-10-10 20:04:50

dbms_job dbms_scheduler简单比较的相关文章

dbms_scheduler vs dbms_job

Although dbms_job still exists in 10gand 11g, Oracle recommends the use of dbms_scheduler in releases 10g and up. Nonew features are being added to dbms_job and you will likely quickly run intoits limitations. dbms_scheduler is more robust andfully-f

DBMS_SCHEDULER and DBMS_JOB

引用原文:http://foolraty.iteye.com/blog/1107803 For DBMS_JOB usage:To find out more information about that failing job you can simply go over the jobnumber and select the needed information from the view dba_jobs. SQL>select job, what from dba_jobs ; For

oracle定时任务(dbms_job)的时间设置参考

最后那一项可以参考如下: 每天午夜12点 'TRUNC(SYSDATE + 1)' 每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)' 每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24' 每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)' 每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 )

oracle定时任务(dbms_job)

我们要做定时任务时,有两种办法 一种是: 操作系统的定时,win的定时任务,unix的crontab一种是: 数据库级的定时,她的效率更高, 再有大量的表级操作时,建议用数据库本身的job queue,这样方便,效率高;如果用系统级定时,会增加很多编程工作,成本增加了,还很容易出错,事情越简单出错的几率越小. 再使用job queue之前,我们还要简单配置下,oracle定时执行job queue 的后台进程是SNP,要启动 snp,首先看系统模式是否支持 sql> alter system e

关于oracle dbms_job 定时执行的内容。

一.设置初始化参数 job_queue_processessql> alter system set job_queue_processes=n;(n>0)job_queue_processes最大值为1000查看job queue 后台进程sql>select name,description from v$bgprocess;或者sql>show parameter job_queue_processes;二.dbms_job package 用法介绍1.Broken()过程更

ORACLE数据库定时任务—DBMS_JOB

创建 DBMS_JOB 使用以下语句: ? 1 2 3 4 5 6 7 8 9 10 VARIABLE jobno number; begin   DBMS_JOB.SUBMIT(     :jobno, --job号,ORACLE自动分配     'your_procedure;',  --执行的存储过程或SQL语句,';'不能省略     next_date, --下次执行时间     'interval' --每次间隔时间,以天为单位   );     commit; end; 例子: 作

Oracle定时任务(1)-DBMS_SCHEDULER

来自:http://blog.csdn.net/fw0124/article/details/6753715 Oracle 10g之前,可以使用dbms_job来管理定时任务.10g之后,Oracle引入dbms_scheduler来替代先前的dbms_job,在功能方面,它比dbms_job提供了更强大的功能和更灵活的机制/管理. 使用dbms_scheduler创建一个定时任务有两种形式1)创建1个SCHEDULER来定义计划,1个PROGRAM来定义任务内容,再创建1个JOB,为这个JOB

Oracle 如何对时间进行简单加减运算

在我们用dbms_job包进行定时Job的时候,需要设置时间间隔,所以需要知道时间的基本加减方法. SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; 会话已更改. SQL> select sysdate, sysdate+1/24, sysdate +1/1440, sysdate + 1/86400 from dual; --分别是加一小时,一分钟,一秒钟 SYSDATE SYSDATE+1/24 SYSDATE+

C# Ping 简单使用

编程过程中,有时候需要判断主机是否在线,最简单的方法就是使用Windows的Ping命令看看能否ping通.看到网上很多文章,说用C#去调用windows的ping.exe,然后解析返回的字符串.我觉得这种方式太麻烦了,就做一下简单判断,不想弄那么麻烦. 查了一下,C#专门提供了一个Ping类,与Windows下的ping命令类似: 命令空间: System.Net.NetworkInformation; 使用方法: bool online = false; //是否在线 Ping ping =