oracle job入门

准备工作

先做一张学生表Table

表STUDENT

create table STUDENT
(
id INTEGER,
name VARCHAR2(100),
age INTEGER,
crt_date DATE
)

准备一个存储过程Procedure

存过PROC_INSERT_STUDENT , 该存过一直往表里插数据,是为了方便观测job执行效果.

CREATE OR REPLACE PROCEDURE PROC_INSERT_STUDENT AS
ID INTEGER;--id
BEGIN
SELECT COUNT(*) INTO ID FROM STUDENT;--根据行数生成id
ID := ID + 1;-- id+1
INSERT INTO STUDENT VALUES (ID, 'bobo', 18, SYSDATE);--插表
DBMS_OUTPUT.PUT_LINE(ID);--打印
COMMIT;--
END;

开始设置配置job

oracle 10g开始引入了DBMS_SCHEDULE包,可以将job需要的各种资源模块化 ,  用于替代老旧的的DBMS_JOB包.

方式一: 新版 DBMS_SCHEDULER.CREATE_JOB(...) 强烈建议

--创建job,每周日的01:00:00执行存过STORED_PROCEDURE删除60天以前各表数据
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB(
--job名
JOB_NAME => 'JOB_INSERT_STUDENT',
--job类型:PLSQL_BLOCK , STORED_PROCEDURE , EXECUTABLE
JOB_TYPE => 'STORED_PROCEDURE',
--procedure名
JOB_ACTION => 'PROC_INSERT_STUDENT',
--开始时间
START_DATE => TO_DATE(NULL),
--频率(以下意为分钟一次,且在每分钟的01秒执行)
REPEAT_INTERVAL => 'Freq=Minutely;Interval=1;BySecond=01',
--结束时间
END_DATE => TO_DATE(NULL),
--job类
JOB_CLASS => 'DEFAULT_JOB_CLASS',
--创建后自动激活
ENABLED => TRUE,
--自动删除: 默认true,即当job执行完毕都到期是否直接删除job
AUTO_DROP => FALSE,
--注释
COMMENTS => 'job说明-插数据到STUDENT表');
END;
/

JOB_TYPE -job类型说明:

  • PLSQL_BLOCK : 用于执行oracle语句(这个不建议用)
  • STORED_PROCEDURE : 用于执行存过(建议使用,最常用)
  • EXECUTABLE : 用于执行某些程序脚本语句,如shell脚本.(偶尔)

这种方式创建的job 在plsql的 jobs窗口可以很方便的查看/编辑

dbms_scheduler介绍

oracle使用DBMS_SCHEDULER调度作业

方式二: 旧版 DBMS_JOB.SUBMIT(...) 不建议

该方式最令人讨厌的地方在于 "频率配置" 晦涩难懂反人类.

-- 声明job
DECLARE
myjob NUMBER;
BEGIN
DBMS_JOB.SUBMIT(myjob, -- 这个参数是out类型
'PROC_INSERT_STUDENT;',
SYSDATE,
'SYSDATE+60/(24*60*60)' ); -- 每60秒一次(即每分钟一次)
COMMIT;
DBMS_OUTPUT.PUT_LINE(myjob); -- 输出 被赋值的 myjob 变量值
END;

查看job

-- 查看刚建立的job id
SELECT * FROM SYS.USER_JOBS

管理job

-- 运行job
BEGIN
DBMS_JOB.RUN(173);
COMMIT;
END; -- 停止job
BEGIN
DBMS_JOB.BROKEN(173, TRUE);
COMMIT;
END; -- 删除job
DECLARE
BEGIN
DBMS_JOB.REMOVE(173);
COMMIT;
END;

特别声明,在设置每周频率的时候,中文环境要输"星期X",而英文环境要输"SUNDAY",如下

declare
job_id number;
begin
sys.dbms_job.submit(job_id, 'PROC_INSERT_STUDENT;', sysdate, 'NEXT_DAY(TRUNC(SYSDATE ), ''星期日'' ) + 12/24'); --马上运行,然后每分钟运行一次
end;

oracle job 使用

oracle job 定时执行 存储过程

总结:

10g开始的新版DBMS_SCHEDULER.CREATE_JOB(...) 比 旧版DBMS_JOB.SUBMIT(...)强大灵活又易理解太多,如果不是版本太旧的原因,一定要用新版去管理job

oracle job入门【原】的更多相关文章

  1. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  2. [转]oracle学习入门系列之五内存结构、数据库结构、进程

    原文地址:http://www.2cto.com/database/201505/399285.html 1 Oracle数据库结构 关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大 ...

  3. oracle数据库入门

    oracle  数据库入门. 1.数据 2.数据存储的地方:变量 数组 容器 (内存中),文件,数据库(文件) 3.数据库系统:sqlserver 2000   2005  2008  mysql 5 ...

  4. Oracle EBS 入门

    Oracle EBS 入门Oracle EBS全称是Oracle 电子商务套件(E-Business Suit),是在原来Application(ERP)基础上的扩展,包含ERP(企业资源计划管理). ...

  5. Oracle从入门到精通----学习笔记

    书名:<Oracle从入门到精通:视频实战版>秦靖.刘存勇等编著 第4章 SQL基础 1.SQL语言分类 数据定义语言 --- DDL,Data Definition Language 数 ...

  6. 《Oracle 11g 入门到精通.明日科技.pdf》学习笔记

    本博文整理者:刘军 本博文出自于: <Oracle 11g 入门到精通>一书 声明:1:转载请标注出处.本文不得作为商业活动.本人不负法律责任.违法者自负一切法律责任. ————————— ...

  7. 【oracle】入门学习(一)

    一直想学oracle但都没有下定决心.这次借了书,一定要学好oracle. 目前学习 <Oracle从入门到精通> 明日科技 的Oracle 11g 版本 关系型数据库的基本理论 数据模型 ...

  8. Oracle从入门到精通 限定查询和排序查询的问题

    视频课程:李兴华 Oracle从入门到精通视频课程 学习者:阳光罗诺 视频来源:51CTO学院 知识点 SQL语句的执行顺序 限定符号的使用.   具体内容: 如果想要对所选择的数据进行控制,就可以使 ...

  9. Oracle编程入门经典 第12章 事务处理和并发控制

    目录 12.1          什么是事务处理... 1 12.2          事务处理控制语句... 1 12.2.1       COMMIT处理... 2 12.2.2       RO ...

随机推荐

  1. id生成工具类

    import java.util.Random; /** * 各种id生成策略 * <p>Title: IDUtils</p> * <p>Description: ...

  2. JSON数据格式解析

    JSON数据的语法规则 1.数据以键值对的形式 2.数据由逗号分隔 3.花括号保存对象 4.方括号保存数组 以PHP的数组为例: <?php $arr = array( "aaaa&q ...

  3. HTML5 Base64_encoding_and_decoding

    https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding In JavaSc ...

  4. Weblogic 9.2和10.3 改密码 一站完成

    Weblogic 9.2和10.3可通用,只需修改参照如下配置即可: SET BEA_HOME=F:\beaSET JRE_HOME=%BEA_HOME%\jdk150_04\binSET LIB_H ...

  5. 关于Http_build_query的用法

    使用背景:在做接口业务过程中,有时会遇到这种情况,本地APP需要接口给其返回一个url,那么在拼接参数的时候,用这个函数就会很方便. 百度百科上给的解释是这样的:http_build_query -- ...

  6. Eclipse 下载安装

    https://blog.csdn.net/qq_27200591/article/details/72823816(安装eclipse  copy) 第一步:下载eclipse,并安装. 下载链接: ...

  7. 如何根据元素的className获取元素?

    getElementsByClassName()是HTML5 新增的DOM API.IE8以下不支持 我们知道,原生的方法,是getElementById()和getElementsByTagName ...

  8. BZOJ4386[POI2015]Wycieczki——矩阵乘法+倍增

    题目描述 给定一张n个点m条边的带权有向图,每条边的边权只可能是1,2,3中的一种.将所有可能的路径按路径长度排序,请输出第k小的路径的长度,注意路径不一定是简单路径,即可以重复走同一个点. 输入 第 ...

  9. BZOJ1803Spoj1487 Query on a tree III——主席树

    题目大意 给一棵有点权的n个点的有根树,保证任意两点的点权不同,m次询问每次询问x的子树中权值第k大的点. 输入 先输入n,然后每个点点权,再输入n-1行每行两个数x,y代表x和y相连,再输入m,之后 ...

  10. NOI2018退役记

    NOI2018退役记 终于我也退役了-- Day0 高中毕业前最后一次坐飞机了--在机场干什么呢?当然是打元气打元气打元气.下飞机干什么呢?当然是打元气打元气打元气. 有接机服务,大巴上有个导游,又向 ...