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. ubuntu16.04下载安装navicate

    1.下载试用版本地址: https://www.navicat.com.cn/download/navicat-premium 2.解压缩 tar -zxvf  /home/rain/download ...

  2. fasterxml.jackson 将对象转换为json报错处理

    最近在做查询的数据遇到如下报错: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found ...

  3. matplotlib绘图

    fig = plt.figure() ax=plt.gca() timeList = np.array(timeList) timeList=timeList*100 timeList1 = np.a ...

  4. python之查询指定目录下的最新文件

    使用os模块查询指定目录下的最新文件 import os # 输入目录路径,输出最新文件完整路径 def find_new_file(dir): '''查找目录下最新的文件''' file_lists ...

  5. Bootstrap导航

    前面的话 导航对于一位前端人员来说并不陌生.可以说导航是一个网站重要的元素组件之一,便于用户查找网站所提供的各项功能服务.本文将详细介绍Bootstrap导航 基础样式 Bootstrap框架中制作导 ...

  6. 计算机cpu、寄存器、内存区别

    1.寄存器是中央处理器内的组成部份.它跟CPU有关.寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令.数据和位址.在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC). ...

  7. Linux 编译命令参数

    基本格式:gcc [options] file1 file2... //若不加入参数,则按默认参数依次执行编译.汇编和链接操作,生成的可执行文件名为 a.out 常用参数:-E //只执行预处理操作 ...

  8. BZOJ1030[JSOI2007]文本生成器——AC自动机+DP

    题目描述 JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群,他们现在使用的是GW文本生成器v6版.该软件可以随机生成一些文章―――总是生成一篇长度固 ...

  9. BZOJ1127 POI2008KUP(悬线法)

    首先显然地,如果某个格子的权值超过2k,其一定不在答案之中:如果在[k,2k]中,其自身就可以作为答案.那么现在我们只需要考虑所选权值都小于k的情况. 可以发现一个结论:若存在一个权值都小于k的矩阵其 ...

  10. Web Scraper爬取就是这么简单

    这应该是最全的一个文档了 https://www.jianshu.com/p/e4c1561a3ea7 所以我就不介绍了,大家直接看就可以了,有问题可以提出来,我会针对问题对文章进行补充~