oracle创建定时任务
一、dmbs_job
dbms_job涉及到的知识点
1、创建job:
variable jobno number;
dbms_job.submit(:jobno, —-job号
'your_procedure;'
,—-执行的存储过程,
';'
不能省略
next_date, —-下次执行时间
'interval'
—-每次间隔时间,interval以天为单位
);/
–系统会自动分配一个任务号jobno。
2、删除job: dbms_job.remove(jobno);
3、修改要执行的操作: job:dbms_job.what(jobno, what);
4、修改下次执行时间:dbms_job.next_date(jobno, next_date);
5、修改间隔时间:dbms_job.interval(jobno, interval);
6、启动job: dbms_job.run(jobno);
7、停止job: dbms.broken(jobno, broken, nextdate);
–broken为boolean值
例子:
– ①②步在sql窗口执行即可
– ①创建一张表
CREATE TABLE a(a DATE);
– ②创建一个自定义过程
CREATE OR REPLACE PROCEDURE TEST AS
BEGIN
INSERT INTO a VALUES(SYSDATE);
END;
– ③创建JOB 设定1分钟执行一次该任务
VAR job1 NUMBER;
BEGIN
dbms_job.submit(:job1,’test;’,sysdate,’sysdate+1/1440’);
COMMIT;
END;
/
– ④运行JOB
BEGIN
dbms_job.run(:job1);
END;
/
--查询当前的job任务。
select * from user_jobs;
二、jobs
使用dbms_scheduler需要具有create job权限,对定时任务一些操作需要具有MANAGE SCHEDULER权限,如:dbms_scheduler.stop_job('my_job_test',true);
BEGIN
dbms_scheduler.create_job(job_name => 'my_job_test',
job_type => 'STORED_PROCEDURE',
job_action => 'my_test',
start_date => sysdate,
repeat_interval => 'sysdate + 1/1440',
enabled => TRUE,
comments => 'test');
end;
参数介绍:
job_name:job名字
job_type:job类型,支持三种类型:
1)PLSQL_BLOCK——PL/SQL语句块;
2)STORED_PROCEDURE——存储过程;
3)EXECUTABLE——外部程序(外部程序可以是一个shell脚本,也可以是操作系统级别的指令)。
job_action:根据job_type的不同,job_action有相对应的内容。
number_of_arguments:参数个数。
start_date:执行开始时间。
repeat_interval:指定job执行频率(如每分钟执行一次、每天执行一次等)。
end_date:执行结束时间。
job_class:jobclass的名字。
enabled:指定是否自动激活job,为true代表自动激活,false代表不激活。
auto_drop:执行完是否自动drop
comments:对于job的简单说明
定时器执行,调用存储过程创建表成功了,不需要显示的授权grant create table to user,只需要存错过程定义为authid current_user即可。个人觉得dbms_job在调用authid current_user的存储过程的时候,未能调用到用户具有的角色的权限,这或许是dbms_job的一个bug。
简单介绍下dbms_scheduler关于定时任务的一些常用过程:
1) dbms_scheduler.run(jobName) 运行job
2) dbms_scheduler.stop_job(jobName,force) 停止job,force默认为false,Oracle建议false停止失败情况下,使用true,且使用true需要有manage scheduler权限
3) dbms_scheduler.drop_job(jobName) 删除job
4) dbms_scheduler.enable(jobName) 打开job
5) dbms_scheduler.disable(jobName,force) 禁用job,force参数用于dependencies,如果TRUE,即使其他对象依赖于它,操作也能成功
相关视图
1) user_scheduler_jobs 查看job信息
2) User_Scheduler_Job_Log job job日志
3) user_scheduler_job_run_details job运行日志
4) user_scheduler_running_jobs 正在运行的job
总结:
oracle定时任务,dbms_job调用存储过程创建表,需要显示授权,存储过程定义为authid current_user也不行,而dbms_scheduler是不需要显示授权的,这点来说后者更方便使用。另外,dbms_scheduler提供了job运行日志记录视图,可以查看具体的运行日志,比较实用。而且,oracle10g以后也推荐使用dbms_scheduler。
oracle创建定时任务的更多相关文章
- oracle数据库定时任务dbms_job的用法详解
本文来源:Ruthless <oracle数据库定时任务dbms_job的用法详解> 一.dbms_job涉及到的知识点 1.创建job: variable jobno number; ...
- linux创建定时任务,定时执行sql
终于弄清楚一个问题了.linux创建定时任务,定时执行sql,其中分为两个case. case-1 sql语句较少,因此直接在 shell脚本中 写sql语句.如下: [oracle@Oracle11 ...
- oracle创建定时器详解|interval属性
定时任务首先先创建定时任务中的存储过程 create or replace procedure pro_jggl as ...
- Oracle Job定时任务详解、跨数据库数据同步
业务需求,需要与A公司做数据对接,我们公司用的Oracle,A公司用的SQL Server数据库,如何跨数据库建立连接呢?这里使用的是DBLink,不会配置的请看我的另外一篇博客:https://ww ...
- 利用Oracle创建表空间和用户
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6217152.html 第一步,创建表空间 以SYS/sys账户和SYSDBA身份登录 ...
- 利用Oracle创建数据库
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6217151.html 数据库的创建 打开"所有程序"-" ...
- Oracle创建数据库
Oracle创建数据库有三种方式:一.使用DBCA(Database Configuration Assistant 数据库配置助手):二.使用 create database指令:三.在安装数据库软 ...
- oracle创建表之前判断表是否存在,如果存在则删除已有表
Mysql 创建表之前判断表是否存在,如果存在则删除已有表 DROP TABLE IF EXISTS sys_area; CREATE TABLE sys_area ( id int NOT NULL ...
- oracle创建数据库和用户
以前开发的时候用得比较多的是mysql和sql server,oracle用的比较少,用起来比较生疏,mysql和sql server用起来比较类似,就oracle的使用方式和他们不同,oracle在 ...
随机推荐
- 2-sat——hdu3062
对于怎么建边还是不太清楚 选了a,那么b c不选,所以连边 选了b或c,那么a必定不选 /* 每个点拆成i*2,i*2+1 队长选,那么队友不选 队长不选,那么队友必定要选 */ #include&l ...
- promise体验
promise的执行流程 promise串行执行异步 job1.then(job2).then(job3).catch(handleError); // 0.5秒后返回input*input的计算结果 ...
- 杂项-公司:Facebook
ylbtech-杂项-公司:Facebook Facebook(脸书)是美国的一个社交网络服务网站 ,创立于2004年2月4日,总部位于美国加利福尼亚州帕拉阿图,2012年3月6日发布Windows版 ...
- Ajax4Jsf 简单介绍
Ajax4jsf 允许开发人员将 Ajax 功能添加到 JSF 应用程序中,而不需要 JavaScript 或用 Ajax 图形部件替换现有的组件.这个包还允许在使用 Java 2D 库时动态地生成图 ...
- diskpart
比如格式化成fat32 format fs=fat32 quick 比鼠标方便 如何使用: 打开cmd输入diskpart进入命令 首先 list disk 然后 然后 clean 然后 create ...
- java中 &&与& ||与| 的区别
public class Demo { public static void main(String[] args) { int i = 5; int j = 3; // || 与 | 的区别 boo ...
- Python学习day02 - 编程分类和Pycharm和Jupyter的安装
编程语言分类 编程语言是用来和计算机交互的,计算机只认识0和1 机器语言(低级语言) 直接和硬件交互 用0和1和计算机沟通 优点:执行效率最高 缺点:开发效率低 汇编语言直接和硬件交互 优点(相较于机 ...
- elasticsearch 中文API river
river-jdbc 安装 ./bin/plugin --install jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/pl ...
- 2018-10-31-win10-uwp-使用-asp-dotnet-core-做图床服务器客户端
title author date CreateTime categories win10 uwp 使用 asp dotnet core 做图床服务器客户端 lindexi 2018-10-31 14 ...
- [计蒜之道2019 复赛 A]外教 Michale 变身大熊猫
[计蒜之道2019 复赛 A]外教 Michale 变身大熊猫 Online Judge:2019计蒜之道 复赛 A Label:LIS+线段树.树状数组+快速幂(模逆元) 题目描述 题解: pre. ...