`

ORACLE 定时执行存储过程(转)

 
阅读更多

一:简单测试job的创建过程案例: 

1,先创建一张JOB_TEST表,字段为a 日期格式

SQL> create table JOB_TEST(a date);

Table created

SQL> commit;

Commit complete

2,创建一个存储过程 bb 作用是往pig表中插入数据

SQL> create or replace procedure JOB_PRO_TEST as

  2  begin

  3  insert into JOB_TEST values(sysdate);

  4  end;

  5  /

Procedure created

 

3,创建一个job,名称为job2010 ;作用是每分钟(60×24=1440)执行一次存储过程JOB_PRO_TEST

SQL> variable job2010 number;

SQL> begin

  2  dbms_job.submit(:job2010,'JOB_PRO_TEST;',sysdate,'sysdate+1/1440');

  3  end;

  4  /

注意:这里系统自动生成job id 为41

PL/SQL procedure successfully completed

job2010

---------

41

4,运行job2010

SQL> begin

  2  dbms_job.run(:job2010);

  3  end;

  4  /

PL/SQL procedure successfully completed

job2010

---------

41

5,删除job2010

SQL> begin

  2  dbms_job.remove(:job2010);

  3  end;

  4  /

6,查询jobs的相关视图

select job,last_date,last_sec,broken,failures,interval, what from dba_jobs

详解 dba_jobs中几个比较重要的字段

job: 指的是job的id号。比如上面的 41

failures:job执行的时候失败次数,如果超过了15次,那么broken列将被标为Y,以后就不会运行该job了

broken:默认为N,如果为Y,意味着不再执行该job!

interval:执行job的间隔时间。

what:该job的实际工作。

二:job 的相关知识:

1,DBA_JOBS

DBA_JOBS

===========================================

字段(列) 类型 描述

JOB NUMBER 任务的唯一标示号

LOG_USER VARCHAR2(30) 提交任务的用户

PRIV_USER VARCHAR2(30) 赋予任务权限的用户

SCHEMA_USER VARCHAR2(30) 对任务作语法分析的用户模式

LAST_DATE DATE 最后一次成功运行任务的时间

LAST_SEC VARCHAR2(8) 如HH24:MM:SS格式的last_date日期的小时,分钟和秒

THIS_DATE DATE 正在运行任务的开始时间,如果没有运行任务则为null

THIS_SEC VARCHAR2(8) 如HH24:MM:SS格式的this_date日期的小时,分钟和秒

NEXT_DATE DATE 下一次定时运行任务的时间

NEXT_SEC VARCHAR2(8) 如HH24:MM:SS格式的next_date日期的小时,分钟和秒

TOTAL_TIME NUMBER 该任务运行所需要的总时间,单位为秒

BROKEN VARCHAR2(1) 标志参数,Y标示任务中断,以后不会运行

INTERVAL VARCHAR2(200) 用于计算下一运行时间的表达式

FAILURES NUMBER 任务运行连续没有成功的次数

WHAT VARCHAR2(2000) 执行任务的PL/SQL块

CURRENT_SESSION_LABEL RAW MLSLABEL 该任务的信任Oracle会话符

CLEARANCE_HI RAW MLSLABEL 该任务可信任的Oracle最大间隙

CLEARANCE_LO RAW MLSLABEL 该任务可信任的Oracle最小间隙

NLS_ENV VARCHAR2(2000) 任务运行的NLS会话设置

MISC_ENV RAW(32) 任务运行的其他一些会话参数

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

2,描述 INTERVAL参数值

每天午夜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 ), 'Q' ) -1/24'

每星期六和日早上6点10分: 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'

每月25号00:00执行: 'TRUNC(LAST_DAY(SYSDATE ) + 25)'

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

1:每分钟执行

Interval => TRUNC(sysdate,'mi') + 1/ (24*60)

Interval => sysdate+1/1440

 

2:每天定时执行

例如:每天的凌晨1点执行

Interval => TRUNC(sysdate) + 1 +1/ (24)

 

3:每周定时执行

例如:每周一凌晨1点执行

Interval => TRUNC(next_day(sysdate,'星期一'))+1/24

 

4:每月定时执行

例如:每月1日凌晨1点执行

Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24

 

5:每季度定时执行

例如每季度的第一天凌晨1点执行

Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24

 

6:每半年定时执行

例如:每年7月1日和1月1日凌晨1点

Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24

 

7:每年定时执行

例如:每年1月1日凌晨1点执行

Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24

3. 查看相关job信息

相关视图

dba_jobs

all_jobs

user_jobs

dba_jobs_running 包含正在运行job相关信息

三:实际应用

 

步骤一:创建一个job,每月25日执行下面sql

SQL> variable job2010 number;

SQL> begin

SQL> dbms_job.submit(:job2010,'delete from i0216_inv_balance_curstock where trunc(sysdate-mtime) > 90 and  ib_qty = 0;commit;',sysdate,'TRUNC(LAST_DAY(SYSDATE ) + 25)');      <==每月25号00:00执行

SQL> end;

SQL> /

 

步骤二:查询生成的job id

SQL> select job, what from dba_jobs;

job          what

61           ..........

 

步骤三:运行刚才创建的job

SQL> begin

SQL> dbms_job.run(61);

SQL> end;

SQL> /

 

步骤四:查询该job下次执行的时间

SQL> select job,next_date,what from dba_jobs

SQL> where job=’61’;

 

步骤五:删除该job

SQL> begin

SQL> dbms_job.remove(61);

SQL> end;

 

SQL> /

分享到:
评论

相关推荐

    Oracle定时执行存储过程

    Oracle定时执行存储过程 Oracle定时执行存储过程

    oracle定时执行存储过程.pdf

    oracle定时执行存储过程,方便大家备份数据,执行复杂操作

    oracle定时存储过程导出用户表或者指定表及数据导出CSV文件

    定时导出oracle指定用户下指定表的所有数据及格式生成CSV文件,通过存储过程; 1.使用特定用户或者system登陆到oracle执行"存储过程.txt"里面的脚本生成对应的存储过程; (说明:存储过程.txt脚本说明,查询指定用户下...

    plsql创建存储过程并创建job定时任务执行-详细笔记文档总结

    plsql创建存储过程并创建job定时任务执行-详细笔记文档总结

    Oracle JOB 定时任务

    Oracle JOB 定时任务 定时执行存储过程

    job(oracle定时任务)界面管理工具

    job的界面配置管理工具,为你更方便快捷定制定时任务,提高维护者的时间成本,更加安全实用

    oracle定时任务创建、查询等

    job_action =&gt; 'AGENT_LIQUIDATION.LIQUIDATION', --存储过程名 start_date =&gt; sysdate, repeat_interval =&gt; 'FREQ=MONTHLY; INTERVAL=1; BYMONTHDAY=1;BYHOUR=1;BYMINUTE=0;BYSECOND=0', -- 按月,间隔为1个...

    job定时器操作存储过程

    定时执行存储过程,创建job、删除job等等

    Oracle数据库表定时备份表 表名动态拼接时间戳存储过程

    3、备份策略是存储过程,方便执行,每次备份表都有时间戳。 4、若备份文件过大,可以考虑增加备份频率或分批备份。 5、如遇到表正在被使用或锁定的情况,可能导致备份失败。建议在备份前确保表处于可备份状态。 6、...

    oracle中的job的用法

    主要介绍的是oracle中的job用法,oracle中定时执行存储过程

    dbsync2.rar

    数据同步工具是针对 ORACLE 数据表之间数据同步而开发的一款软件。该工具具有以下特 性: 1) ORACLE 表之间数据的同步或增量同步功能;...8) 支持常用的数据库记录操作(添加记录,修改记录,删除记录,执行存储过程)

    oracle数据库定时任务dbms_job的用法详解

    ',—-执行的存储过程, ';'不能省略 next_date, —-下次执行时间 'interval' —-每次间隔时间,interval以天为单位 ); –系统会自动分配一个任务号jobno。 2、删除job: dbms_job.remove(jobno); 3、修改要执行的...

    ORACLE之常用FAQ V1.0(整理)

    [Q]怎么样加密存储过程 7 [Q] 7 [Q] 7 [Q]如果存在就更新,不存在就插入可以用一个语句实现吗 8 [Q]怎么实现左联,右联与外联 9 [Q]怎么实现一条记录根据条件多表插入 10 [Q]如何实现行列转换 11 [Q]怎么样实现分组...

    文件自动同步数据库管理工具

    如清除系统日志,数据同步,数据备份,整理数据库空间,调用存储过程等。已测试支持Oracle、SqlServer、MySql等数据库、及Access、Excel等OleDb数据库。 文件操作任务:同步服务器上的文件,或删除服务器上的日志...

    asp.net知识库

    发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory3.0完全攻略--简单示例 XCodeFactory3.0完全攻略--IDBAccesser ...

    小排骨网站采集器|通用的网页采集器

    小排骨采集器的主要功能: ※ 多任务 & 多线程:可以同时执行多个采集任务,每...※ 支持存储过程调用,可以与现有数据库进行整合,构造一个数据处理层。 ※ 支持采集结果在线发布,即以在线方式发布到现有的网站系统。

    PowerJob-其他

    有定时执行需求的业务场景:如每天凌晨全量同步数据、生成业务报表等。 有需要全部机器一同执行的业务场景:如使用广播执行模式清理集群日志。 有需要分布式处理的业务场景:比如需要更新一大批数据,单机执行耗时...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例244 将文本文件中数据存储到数据库中 316 4.5 文件的压缩与解压 318 实例245 PHP中压缩RAR文件 319 实例246 PHP中将上传文件转换成RAR文件 320 实例247 PHP中对RAR文件进行解压 321 实例248 PHP中压缩ZIP文件 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例244 将文本文件中数据存储到数据库中 316 4.5 文件的压缩与解压 318 实例245 PHP中压缩RAR文件 319 实例246 PHP中将上传文件转换成RAR文件 320 实例247 PHP中对RAR文件进行解压 321 实例248 PHP中压缩ZIP文件 ...

Global site tag (gtag.js) - Google Analytics