ORACLE中JOB的使用

JOB:和JAVA中的job类似,都是定时任务。

首先,建表:

-- Create table
create table MYDAILYDK
(
  ID     NUMBER(19) not null,
  NAME   VARCHAR2(255),
  DKTIME DATE
)
tablespace NG_DATA
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

然后,建个存储过程,用来向表里插入数据:

create or replace procedure mbproc_mydailydk

as

begin

insert into mydailydk(id,name,dktime)
values(s_madailydk.nextval,'小明',sysdate);
commit;

end;

JOB参数简介:

/**    job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。      what参数是将被执行的PL/SQL代码块。      next_date参数指识何时将运行这个工作。      interval参数何时这个工作将被重执行。      no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE      指示此PL/SQL代码在它第一次执行时应进行语法分析,      而FALSE指示本PL/SQL代码应立即进行语法分析。     */

创建JOB:

begin
  sys.dbms_job.submit(job => :job,
                      what => 'mbproc_mydailydk;',
                      next_date => to_date('08-11-2016 14:22:08', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+1');
  commit;
end;

说明:ORACLE会自动生成唯一的JOB标识,就是submit的第一个参数。

查看创建的job:

     select * from user_jobs;

手动运行Job,参数为自动生成的唯一标识,我的是64,把:job换成64即可,由于我的开始时间是sysdate,手动每天的这个时候去执行一次,因此查看存储过程中插入的表会有一条数据插入:

  begin
  dbms_job.run(:job);
  end;

查看被插入的表:

     select * from mydailydk;

停止job:

  begin
     
       dbms_job.broken(64, true);
     
  end;

删除job:

  begin
     
       dbms_job.remove(64);
     
  end;

另外,关于 dbms_job 这个pakage中的其它函数请自行查阅:change()、Interval()、Isubmit()、Next_Date()等等。

附上pakage的文档的连接:

https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_job.htm#i1000681

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏个人随笔

MySQL基础补充

  结构语言分类  DDL(数据定义语言)  create  drop  alter   创建删除以及修改数据库,表,存储过程,触发器,索引....  D...

30712
来自专栏xingoo, 一个梦想做发明家的程序员

程序猿的日常——Mybatis现学现卖

最近有一个小项目需求,需要用spring mvc + mybatis实现一个复杂的配置系统。其中遇到了很多不太常见的问题,在这里特意记录下: 主要涉及的内容有...

3597
来自专栏信安之路

webgoat-Injection

注入攻击是WEB安全领域中一种最为常见的攻击方式。在“跨站脚本攻击”一章中曾经提到过,XSS本质上也是一种针对HTML的注入攻击。而在“我的安全世界观”一章中,...

880
来自专栏Java进阶架构师

「mysql优化专题」90%程序员没听过的存储过程和存储函数教学(7)

储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时...

933
来自专栏后台架构

Sphinx源码学习笔记(一):索引创建

  因为项目开发需要在游戏内部实现玩家名称的模糊查找功能,本身直接使用Sphinx配置mysql可以直接搭建一套模糊匹配的即可支持功能的实现。

5017
来自专栏coder修行路

Go基础之--操作Mysql(三)

事务是数据库的一个非常重要的特性,尤其对于银行,支付系统,等等。 database/sql提供了事务处理的功能。通过Tx对象实现。db.Begin会创建tx对象...

3699
来自专栏hh

mysql-innodb关键特性

1.插入缓冲(insert buffer):数据页一样,是物理页的一个组成部分,其数据结构是一棵B+树,存放在ibdata1(共享表空间)中。

4146
来自专栏木头编程 - moTzxx

PHP DB 数据库连接类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

1461
来自专栏我爱编程

Python数据库操作之pymysql模块和sqlalchemy模块

参考博客https://www.cnblogs.com/aylin/p/5770888.html

1984
来自专栏hotqin888的专栏

golang beego orm无限条件查询,多条件查询,不定条件查询,动态多条件查询sql语句,一个字段匹配多值

其实我的需求就是:一个树状目录,每个目录下都存有成果,给定某一个上级目录id,分页查询出这个目录下以及子孙目录下的所有成果,要求分页。

1K2

扫码关注云+社区

领取腾讯云代金券