Oracle计划任务

王朝学院·作者佚名  2009-11-26
窄屏简体版  字體: |||超大  

Oracle 计划任务——每天零晨1 : 30 执行一个存储过程

对涉及到 oracle 数据库,需要定时执行的工作,可以考虑三个方法:

1 、用 oracle 的 job 来完成

2 、写个批处理文件,用 windows 的计划任务实现

3 、 oracle 中建表,写过程,外部写监控程序调用(线程不断检查有没有要执行的任务)

存储过程:

create or replace procedure CDRFEE_CREATE is

begin

insert into CRM_CALL_MONEY

select callingusername,sum (CHARGEAMOUNT),to_char(sysdate -interval '1' day , 'yyyy-MM-dd' ) from cdrinfo

where logtime>to_date(to_char(sysdate -interval '1' day , 'yyyy-MM-dd' ), 'yyyy-MM-dd' ) and logtime<to_date(to_char(sysdate , 'yyyy-MM-dd' ), 'yyyy-MM-dd' )

group by callingusername ;

end CDRFEE_CREATE;

Job :

variable jobno number;

begin

sys .dbms_job.submit(job => :job,

what => 'CDRFEE_CREATE;' ,

next_date => to_date( '26-11-2009 1:30:00' , 'dd-mm-yyyy hh24:mi:ss' ),

interval => 'sysdate+1' );

commit ;

end ;

/

注意点:

1、 放足权限,如存储过程需要创建表,那么需要给当前连接用户这种系统权限: create any table 。

查看 Job 执行情况:

select * from dba_jobs 所有的 JOB

select * from dba_jobs_running 正在运行的

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航