oracle job入门【原】
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_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;
总结:
10g开始的新版DBMS_SCHEDULER.CREATE_JOB(...) 比 旧版DBMS_JOB.SUBMIT(...)强大灵活又易理解太多,如果不是版本太旧的原因,一定要用新版去管理job
oracle job入门【原】的更多相关文章
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- [转]oracle学习入门系列之五内存结构、数据库结构、进程
原文地址:http://www.2cto.com/database/201505/399285.html 1 Oracle数据库结构 关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大 ...
- oracle数据库入门
oracle 数据库入门. 1.数据 2.数据存储的地方:变量 数组 容器 (内存中),文件,数据库(文件) 3.数据库系统:sqlserver 2000 2005 2008 mysql 5 ...
- Oracle EBS 入门
Oracle EBS 入门Oracle EBS全称是Oracle 电子商务套件(E-Business Suit),是在原来Application(ERP)基础上的扩展,包含ERP(企业资源计划管理). ...
- Oracle从入门到精通----学习笔记
书名:<Oracle从入门到精通:视频实战版>秦靖.刘存勇等编著 第4章 SQL基础 1.SQL语言分类 数据定义语言 --- DDL,Data Definition Language 数 ...
- 《Oracle 11g 入门到精通.明日科技.pdf》学习笔记
本博文整理者:刘军 本博文出自于: <Oracle 11g 入门到精通>一书 声明:1:转载请标注出处.本文不得作为商业活动.本人不负法律责任.违法者自负一切法律责任. ————————— ...
- 【oracle】入门学习(一)
一直想学oracle但都没有下定决心.这次借了书,一定要学好oracle. 目前学习 <Oracle从入门到精通> 明日科技 的Oracle 11g 版本 关系型数据库的基本理论 数据模型 ...
- Oracle从入门到精通 限定查询和排序查询的问题
视频课程:李兴华 Oracle从入门到精通视频课程 学习者:阳光罗诺 视频来源:51CTO学院 知识点 SQL语句的执行顺序 限定符号的使用. 具体内容: 如果想要对所选择的数据进行控制,就可以使 ...
- Oracle编程入门经典 第12章 事务处理和并发控制
目录 12.1 什么是事务处理... 1 12.2 事务处理控制语句... 1 12.2.1 COMMIT处理... 2 12.2.2 RO ...
随机推荐
- Install odoo 11(10) on centos7
https://www.odoo.com/documentation/11.0/setup/install.html https://nightly.odoo.com/ https://www.odo ...
- ubuntu ftp服务
apt-get install vsftpd apt-get update vi /etc/apt/sources.list vim /etc/vsftpd.conf service vsftpd ...
- CRM模块
- WPF将数据库和GridView绑定并更改GridView模板
首先来看一下如何使用GridView,在前台的话代码如下:这里仅仅举出一个例子,GridView是作为子项嵌套在ListView中的,这里的数据源是通过绑定的方式来绑定到GridView中的. < ...
- Java微信二次开发(五)
消息加密 需要到入库:commons-io-2.4.jar,commons-codec-1.9.jar(在官网的Java微信加密demo下) 第一步:访问https://mp.weixin.qq.co ...
- anaconda2安装cv2
http://m.blog.csdn.net/u010167269/article/details/62447648 下载离线安装包:https://anaconda.org/menpo/opencv ...
- 洛谷 P4294 [WC2008]游览计划
题目链接 不是很会呢,但似乎抄了题解后有点明白了 sol:状态DP显然,其实是要构建一棵最小生成树一样的东西,我自己的理解(可能不是很对哦希望多多指教)f[x][y][zt]就是到x,y这个点,状态为 ...
- spring boot 系列之五:spring boot 通过devtools进行热部署
前面已经分享过四篇随笔: spring boot 系列之一:spring boot 入门 spring boot 系列之二:spring boot 如何修改默认端口号和contextpath spri ...
- 如何注册CUBA Studio
拿着注册码不会注册,我也是醉了 运行Cuba Studio,然后在浏览器中打开,不要新建项目,这时右上角有一个英文[Register]和一个单选开关.如下: 这个英文不是这个单选开关的说明,它是一个超 ...
- MT【52】空间法向量理解直线条数
[从最简单的做起.]--波利亚 评:线面角转化成线与线的角,这道题还有类似的这类题是学生的难点.