Oracle计划任务
2009-11-25 16:53:05 来源:WEB开发网核心提示:Oracle 计划任务——每天零晨1 : 30 执行一个存储过程 对涉及到 oracle 数据库,需要定时执行的工作,Oracle计划任务,可以考虑三个方法: 1 、用 oracle 的 job 来完成 2 、写个批处理文件,用 windows 的计划任务实现 3 、 oracle 中建表,写过程,外部写监控程序调用(
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 正在运行的
对涉及到 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 正在运行的
[]
更多精彩
赞助商链接