PL/SQL存储过程,定时任务的使用教程

PL/SQL存储过程,定时任务的使用教程

本章参考bilibili_oracle学习,如有侵权请联系我

-步骤:

  1. 建表
  2. 创建自增seq序列
  3. 创建一个简单的插入数据存储
  4. 创建dbms_job.submit()定时任务
  5. 定时任务移除

第一步:建表(简单的测试表就好)

--1.table,测试表
create table person_20201011(
       id number primary key,
       name varchar2(10) not null
);

第二步:序列

--2.sequence
create sequence seq_pid;

第三步:创建简单的数据插入过程procrdure

--3.procedure
create or replace procedure xperson is
begin
  insert into person_20201011
  values
    (seq_pid.nextval, 'admin' || seq_pid.currval);
    --表有两个字段,其中插入的第一个字段根据主键id序列自增,每次使用序列+1,第二个字段的值为admin连接上序列的当前值
    commit;
    --记得提交事务(插入更新等操作)
end;

第四步: 创建dbms_job.submit()定时任务

首先要了解一下dbms_job.submit(),以及它的参数和类型,是怎么使用的

–submit 有四个参数,
参数一:job(out模式的binary_integer类型),是用来提交定时任务时接受任务编号的(创建时候系统分配的)
参数二:varchar2,要调用的存储过程的名称;例如**‘过程名字();’**
参数三:date,第一次执行任务的时间
参数四:interval(varchar2),任务执行的时间间隔
参数四是一个字符串,但是字符串必须是date类型;例如’sysdate+1’表示隔一天运行一次
间隔时间的计算方式,参数四-参数三;

--4.dbms_job 定时任务创建     定时插入数据  (定义并提交定时任务)
declare
  jid binary_integer;	--声明一下系统分配的编号,这个数据类型要注意,详情请看上面的参数说明
begin
  dbms_job.submit(jid,'xperson();',sysdate,'sysdate+10/(24*60*60)');
  --第一个参数是系统分配的编号,
  --注意参数二是存储过程的调用,后面要有括号和分号,它是一个字符串类型的
  --参数三,就是开始的时间了,我这里使用了当前系统时间
  --还有就是第四个参数时间的计算也是字符串类型的,我这里使用了每隔10秒跑一次定时
  dbms_output.put_line('系统分配的编号:' || jid); --输出一下这个系统分配的编号,方便等会移除定时job等
  dbms_job.run(jid);	--运行定时任务
end;

在这边也可以看到这个定时任务的系统分配额编号
定时任务的编号查看

定时任务的编号查看
这边也可以看到编号
定时任务的编号查看
接下来我们看一下效果

select * from person_20201011;

插入效果

第五步:定时任务移除

--删除dbms_job定时任务,其中remove括号中的数据是系统分配给定时任务的编号,具体查看看第四步的操作
begin
  dbms_job.remove(32);
end;

这时我们的定时任务就移除了

就到这里了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值