各位大虾,job定时问题:job定时执行存储过程,想整点执行,怎么实现啊,

作者&投稿:印姣 (若有异议请与网页底部的电邮联系)
各位大虾,我想在每天的某个时间点执行一段存储过程,该怎么写触发器,还是有别的方法,谢谢!~

sqlserver用作业定时执行sql
oracle用job

定时执行存储过程,需要在job里定义;而执行多个存储过程,则在job中定义多次即可。
运行环境:oracle 10g
1、定义其中一个job

1
2
3
4
5
6
7
8
9
10
11
12
13

declare
jobno number;
begin
dbms_job.submit(11,
what => 'pro_bdc_bh(
to_char(add_months(trunc(sysdate),-1),''yyyy''),
to_char(add_months(trunc(sysdate),-1),''MM''),
''true''
);',
next_date => sysdate,
Interval => 'TRUNC(sysdate) + 1 +2 / (24)');
commit;
end;

注意:其中pro_bdc_bh为存储过程名称,TRUNC(sysdate) + 1 +2 / (24)为定义的运行时间为每日凌晨2点。
2、然后定义另外一个job

1
2
3
4
5
6
7
8
9
10
11
12
13

declare
jobno number;
begin
dbms_job.submit(11,
what => 'p_test(
to_char(add_months(trunc(sysdate),-1),''yyyy''),
to_char(add_months(trunc(sysdate),-1),''MM''),
''true''
);',
next_date => sysdate,

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

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

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

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

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

下面参考文档边看边做。

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

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

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

BEGIN
SYS.DBMS_SCHEDULER.CREATE_SCHEDULE
(
schedule_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;
/



begin sys.dbms_job.submit(job =


各位大虾,job定时问题:job定时执行存储过程,想整点执行,怎么实现啊,
Schedules -- 指定何时何种频率来运行job,可以被不同的job重复的利用。比如说我有两个job都要求在每天的凌晨4点运行,那么两个job可以同时指定相同的schedule。Jobs -- 具体的作业的名称,依赖于那个program、schedule。也可以不指定program、schedule,而直接写入program、schedule的相应参数。Chains -- 把...

男生说大虾是什么意思?
除了作为称呼,大虾在情境中还有其他的含义。例如,在聚餐或约会时,点一份大虾通常指点一份作为菜品的虾子。而在社交媒体或在线游戏中,大虾可以表示对对方的赞赏,类似于英文中的“great job”或“well done”。需要注意的是,使用大虾这个词汇并不总是合适的,尤其是在正式的场合或与长辈、上级交往时...

寻找HR大虾:“如何做好新员工入职培训”
可以是授课式、研讨会形式,也可以是在岗实地培训(On The Job Training),甚至可以是户外训练等方式。 例如,美国惠而浦公司(Whirlpool Corporation) 对新加入的销售人员采用实地培训。以7个人为一组,安排在公司密歇根总部附近的房子里,为期两个月,只有2个周末允许回家度假。除了普通的讲授方式,还让新销售员工每天用公司...

哪位大虾给翻译一下简历汉译英
Salute Job seeker:October, 2005

请各位大虾帮偶的工作经历翻译一下英文:谢谢
Job description and performance: a, after two years of study and exercise, I now can deal with complete set of general ledger.1, accounts of the document examination and LiZhang, XiaoZhang, and strive to timely reminder;2, in using tax invoices, Internet security authentication ...

请各位大虾帮我翻一句句子!!急急急
Tick the box when job responsibilities have substantially changed to determine impact on corporate wide roles & skills descriptions.当工作职责发生重大调整时请勾选此方框,评判此类调整对个人在全公司角色和技能所产生的影响。

麻烦哪位大虾帮忙写个英语书面表达,去公司应聘时用的介绍自己的,按你的...
a good job till i left that company which i worked for more than two years.i am goal-oriented,and optimistic,and i am easy going.i believe this is my dreaming chance , and if i get it,i will do it better than anyone else.刚开始你得礼貌谢谢人家,然后再开始介绍自己。

那位大虾给个免费的电影网站
刚开不久的电影网站,不需要注册就可以观看,速度还可以。江西免费电影 http:\/\/www.jx-xinhua.com\/movie.asp 一个不需要注册就可以观看的电影网站,速度一般般。易找人才网电影网 http:\/\/www.ejob.cn\/vod\/index.asp 不需要注册就可以观看,有些片要安装一下插件才行,速度还可以。逸风免费电影 ...

oracle中创建的job作业不运行
你可以单独执行一下存储过程。看出什么错,这个就是你的存储过程执行失败导致的。希望我的回答对你有帮助。

各位大虾们,帮帮小弟吧,小弟有一篇自荐信,求你们帮我翻译成英文,谢咯...
Distinguished leadership: Hello! Thank you very much in his busy schedule had taken the time to read my job Zi Jianxin. I am XX School of Professional Numerical 2009 graduates. Is about to embark on the journey, presented here in my job information, special volunteered, your ...

蒲江县13840981220: 各位大虾,job定时问题:job定时执行存储过程,想整点执行,怎么实现啊, -
独叶双骨: 如果是10g的话就用scheduler来代替job吧,比job稳定多了.先解释一下基础概念,scheduler 包含了以下几个实体对象 Program -- 提供了scheduler 将要运行什么,包含program name,program type(PLSQL块、存储过程、外部程序),program ...

蒲江县13840981220: Oracle job定时任务 -
独叶双骨: job定时任务需要依托存储过程.1、创建存储过程:create or replace procedure MYPROC as begin insert into TEST values(sysdate); end;2、创建job variable job1 number; begin dbms_job.submit(:job1,'MYPROC;',trunc(sysdate+1),'sysdate+1');--从今晚12开始运行,以后每天运行一次 end;

蒲江县13840981220: oracle 怎么写job计划定时每月的2号到11号执行 -
独叶双骨: 这个问题简单,让job天天执行,在调用的过程或函数里面判断,是执行的日期就是继续往下面执行,不是执行日期直接退出返回即可.

蒲江县13840981220: ORACLE建立的定时器job定义每天晚上23点30分执行,可是每次执行的时候都晚了三十多分钟,这是为什么? -
独叶双骨: 是不是你的数据库服务器时间比实际的晚?我之前就是遇到这种情况.

蒲江县13840981220: oracle的job,每天凌晨两点定时的执行一次,下午一点执行一次 -
独叶双骨: 使用submit()创建job 参数:job、what、next_date、interval、no_parse PROCEDURE Submit ( job OUT binary_ineger,What IN varchar2,next_date IN date,interval IN varchar2,no_parse IN booean:=FALSE) job参数是由Submit()过程返回的...

蒲江县13840981220: Oracle通过job定时创建表 -
独叶双骨: 在项目中,经常会遇到需要定时完成的任务,比如定时更新数据,定义统计数据生成报表等等,其实这些事情都可以使用Oracle的Job来完成.下面考试大就结合我们实验室项目实际,简单介绍一下在Oracle数据库中通过Job完成自动创建表的方...

蒲江县13840981220: 如何写SQLServer的JOB让它每天定时的执行某个存储过程 -
独叶双骨: create proc p_createjob @jobname varchar(100), --作业名称 @sql varchar(8000), --要执行的命令 @serverName sysname='', --job server名 @dbname sysname='', --默认为当前的数据库名 @freqtype varchar(6)='day', --时间周期,month 月,week 周,day 日 @fsinterval int=1, --相对于每日的重复次数 @time int=170000 --开始执行时间,对于重复执行的作业,将从0点到23:59分!

蒲江县13840981220: oracle job 定时执行,调用的存储过程报错,导致job未正常运行,请问多长时间后JOB再自动启动? -
独叶双骨: 第天1点执行的一个job示例:DECLARE X NUMBER; BEGIN SYS.DBMS_JOB.SUBMIT ( job => X ,what => 'syn_rpt_members_relation;' ,next_date => to_date('02-07-2008 01:00:00','dd/mm/yyyy hh24:mi:ss') ,interval => 'trunc(sysdate+1)+(1/24)' ,...

蒲江县13840981220: oracle.job定时器、具体案例 -
独叶双骨: 创建JOB SQL如下:declare JOB2 number; BEGIN SYS.DBMS_JOB.SUBMIT(JOB2, 'P_TEST;', to_date('03-02-2012 00:00:01', 'dd-mm-yyyy hh24:mi:ss'), 'TRUNC(SYSDATE+1)'); COMMIT; END;/ 其中'P_TEST是DB中现存的Procedure.希望能帮到你.

蒲江县13840981220: 关于PLSQL中JOB定时任务的问题 -
独叶双骨: 给你一个我自己写的完整的(用PLSQL->文件->新建->测试窗口) DECLAREjobno BINARY_INTEGER;instno number;p_job_queue_processes VARCHAR2(512);p_interval VARCHAR2(200);p_next_date DATE;s_next_date VARCHAR2(...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网