问答文章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

我来回答

1个回答

热心网友 时间:2022-04-07 19:36

如果是10g的话就用scheler来代替job吧,比job稳定多了。

先解释一下基础概念,scheler 包含了以下几个实体对象
Program -- 提供了scheler 将要运行什么,包含program name,program type(PLSQL块、存储过程、外部程序),program action(具体的程序实体,比如说一个PLSQL块、或者是存储过程的名称、或者是外部程序的路径加名称) 。

Scheles -- 指定何时何种频率来运行job,可以被不同的job重复的利用。比如说我有两个job都要求在每天的凌晨4点运行,那么两个job可以同时指定相同的schele。

Jobs -- 具体的作业的名称,依赖于那个program、schele。也可以不指定program、schele,而直接写入program、schele的相应参数。

Chains -- 把一组program像一个单独的实体连接在一起,作为一个对象。Job可以指向Chains代替单一的program 。这样就能完成类似如下功能:运行A,然后运行B,当A、B都运行成功则运行C,否则运行D。

下面参考文档边看边做。

1.创建一张表 create table scheler_test(id number,instime date);

2.创建一个存储过程,实现往表中插入资料。

create or replace procere p_insSysdate as
id number;
begin
select count(*) into id from scheler_test;
insert into scheler_test values(id,sysdate);
commit;
end;
/
3.创建一个schele,这个仅仅是一个时间上的安排,由DBMS_SCHEDULER.CREATE_JOB调用。这样就可以重用schele,并且schele在时间的安排上强大与原先的JOB 。语法如下:

BEGIN
SYS.DBMS_SCHEDULER.CREATE_SCHEDULE
(
schele_name => 'SCOTT.EVERY_MINUTE'
,start_date => NULL
,repeat_interval => 'FREQ=MINUTELY'
,end_date => NULL
,comments => NULL
);
END;
/

以下给出部分repeat_interval的写法实例,以供参考
EVERY DAY 'FREQ=DAILY;INTERVAL=1'
EVERY MINUTE 'FREQ=MINUTELY;INTERVAL=1'
EVERY 4 HOURS ON THE HOUR 'FREQ=HOURLY;INTERVAL=4;BYMINUTE=0;BYSECOND=0'
1st DAY OF EVERY MONTH 'FREQ=DAILY;BYMONTHDAY=1'
WEEKDAYS AT 7am and 3pm 'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI; BYHOUR=7,15; BYMINUTE=0;BYSECOND=0'

4.创建DBMS_SCHEDULER.CREATE_PROGRAM,指定运行什么样的程序。

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