问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何让oracle job定时调用一个有参的存储过程

发布网友 发布时间:2022-04-26 18:46

我来回答

2个回答

懂视网 时间:2022-05-01 11:02

1、创建一个表,用来存储数据:

  create table job_table(run_time date);

2、创建存储过程:

  create or replace procedure job_proc

    is 

  begin

    insert into job_table(run_time) values (sysdate);

  end ;

3、创建定时器(每隔一分钟,向表里增加一条数据)

  declare

    job number

  begin

    dbms_job.submit(job,‘job_proc;‘,sysdate,‘TRUNC(sysdate,‘‘mi‘‘)+1/(24*60)‘) ;

  end ;

4、查看创建的定时器结构

  select job , next_date,next_sec,failures,broken

    from  user_jobs ;

5、查看创建的表里是否存在数据(定时器是否启动)

  select * from job_table;

6、启动定时器(提交)

  commit ;

7、隔一段时间之后再查看,表里已经有数据了,成功;

8、删除定时器

  delete from user_jobs where job = 41 ;

  注:这里是41 指的是你在执行步骤5时,看到的自己创建的定时器的编号;

 

  

Oracle定时器调用存储过程

标签:

热心网友 时间:2022-05-01 08:10

/*
查询:
select job,broken,what,interval,t.* from user_jobs t;
job job的唯一标识,自动生成的
broken 是否处于运行状态,N;运行;Y:停止
what 存储过程名称
next_date 初次执行时间
interval 执行周期

删除:
begin dbms_job.remove(jobno); end;
根据what的内容确定其对应的job,并如此执行删除

执行时间例子:
描述 INTERVAL参数值
每天午夜12点 ''TRUNC(SYSDATE + 1)''
每天早上8点30分 ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)''
每星期二中午12点 ''NEXT_DAY(TRUNC(SYSDATE ), ''''TUESDAY'''' ) + 12/24''
每个月第一天的午夜12点 ''TRUNC(LAST_DAY(SYSDATE ) + 1)''
每个季度最后一天的晚上11点 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ''Q'' ) -1/24''
每星期六和日早上6点10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE, ''''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)''
每3秒钟执行一次 'sysdate+3/(24*60*60)'
每2分钟执行一次 'sysdate+2/(24*60)'

1:每分钟执行
Interval => TRUNC(sysdate,'mi') + 1/ (24*60) --每分钟执行
interval => 'sysdate+1/(24*60)' --每分钟执行
interval => 'sysdate+1' --每天
interval => 'sysdate+1/24' --每小时
interval => 'sysdate+2/24*60' --每2分钟
interval => 'sysdate+30/24*60*60' --每30秒
2:每天定时执行
Interval => TRUNC(sysdate+1) --每天凌晨0点执行
Interval => TRUNC(sysdate+1)+1/24 --每天凌晨1点执行
Interval => TRUNC(SYSDATE+1)+(8*60+30)/(24*60) --每天早上8点30分执行
3:每周定时执行
Interval => TRUNC(next_day(sysdate,'星期一'))+1/24 --每周一凌晨1点执行
Interval => TRUNC(next_day(sysdate,1))+2/24 --每周一凌晨2点执行
4:每月定时执行
Interval =>TTRUNC(LAST_DAY(SYSDATE)+1) --每月1日凌晨0点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24 --每月1日凌晨1点执行
5:每季度定时执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'q') --每季度的第一天凌晨0点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'q') + 1/24 --每季度的第一天凌晨1点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE+ 2/24,3),'q')-1/24 --每季度的最后一天的晚上11点执行
6:每半年定时执行
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24 --每年7月1日和1月1日凌晨1点
7:每年定时执行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24 --每年1月1日凌晨1点执行

相关方法:
修改要执行的操作:dbms_job.what(jobno,'sp_fact_charge_code;'); --修改某个job名
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
!这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 什么牌子的即热式电热水器比较好? Oracle存储过程中的定时执行方法有哪些 您好 请教个问题,我有个电机17pm-k404-05w 应该是步进电机,4根线,请问怎样测量好坏?两组线圈电阻一样 空调步进电机如何判断其好坏 步进电机怎么测量输出电流 1:如何测量步进电机的额定电流和额定电压呢 在没有任何标明的情况下 用万用表 步进电机的电阻怎么测量 步进电机用PLC怎么测试转速 如何简单检测步进电机驱动器的好坏,越简单越好 业余条件下如何测量步进电机的扭矩? 如何测量步进电机的相电流和相电压 请教怎样试验,判断步进电机的好坏 如何检测步进电机脉冲 如何测量步进电机的相电流和相电压? 如何测量步进电机驱动器输出电流 步进电机的电阻怎么测量? 如何对步进电机的电流进行测量 如何测量步进电机驱动器输出电流? 如何把篮球的脚步与控球节奏练好 怎样练篮球节奏 oracle中一个存储过程定时执行,想在一个窗口中下次执行查看时间 oracle定时执行存储过程的时间区间问题 想请教一下如何用oracle 中JOB实现定时存储过程。 即热式电热水器哪个牌子更好? oracle定时执行存储过程时报错 支付宝被实名认证的人诈骗报警有用吗 各位大神们,我想在oracle后台执行多个存储过程,请问要怎么做呢?_百度... 大家感觉即热式电热水器哪个牌子比较好? oracle存储过程手动执行没问题,但是用定时器执行却失败 在支付宝投诉诈骗,支付宝会不会通知警方?我的学校会不会知道这件事... Oracle定时job没有按时执行里面的存储过程,是怎么回事 关于ORACLE用JOBS调用存储过程,该存储过程已创建了,两个OUT参数,如何... 为什么有的家庭没有爱?出现哪些现象要值得反思? 有些家庭为什么那么贫困(贫穷)? 为什么有些人的家庭很幸福,而有些家庭不是很幸福? 有哪几种家庭,一旦衰败,就很难有翻身的机会? 为什么有些家庭一点都不和睦? 什么的家庭填空 一个有家庭的男人,真的会爱你吗? 女孩跟我说我有我爱的人,你有你的家庭什么意思?