资源描述:
《oracle定时运行存储过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、直接运行以下命令则可以实现定时:variablejob1number;begindbms_job.submit(:job1,'ac_detail_data_create;',trunc(sysdate,'mm')+6+1/24,'trunc(add_months(sysdate,1),''mm'')+6+1/24');commit;end;dbms_job.submit(:job1,'ac_detail_data_create;',trunc(sysdate,'mm')+6+1/24,'trunc(add_months(sysdate,1),''mm'')+6+1/
2、24');第二个参数是存储过程名第三个参数第一次执行时间第四个参数定时时间定时时间的计算方法:每天:trunc(sysdate+1)每周:trunc(sysdate+7)每月:trunc(sysdate+30)每个星期日:next_day(trunc(sysdate),'SUNDAY')每天6点:trunc(sysdate+1)+6/24半个小时:sysdate+30/1440如果是存储要带运行参数,则采用以下方法:VARIABLEjobnumber;beginsys.dbms_job.submit(job=>:job,what=>'declarep_cycle_i
3、dvarchar2(8);resultnumber;resulttextvarchar2(1024);beginselectto_char(add_months(trunc(sysdate),-1),''yyyymm'')
4、
5、''01''intop_cycle_idfromdual;insertintorpt_error_info(err_code,err_msg)values(seq_rpt_log_id.nextval,to_char(sysdate,''yyyymmddhh24miss'')
6、
7、''-''
8、
9、p_cycle_id
10、
11、''-rpt_balance
12、_balance_prc_1-'');rpt_summary_1290(p_cycle_id,result,resulttext);insertintorpt_error_info(err_code,err_msg)values(seq_rpt_log_id.nextval,to_char(sysdate,''yyyymmddhh24miss'')
13、
14、''-''
15、
16、p_cycle_id
17、
18、''-rpt_balance_balance_prc_1-'');commit;end;',next_date=>to_date('04-03-201202:00:00','dd-
19、mm-yyyyhh24:mi:ss'),interval=>'trunc(add_months(sysdate,1),''MM'')+2+3/24');commit;end;自己使用实例:定时运行一个存储(带参数的):VARIABLEjobnumber;beginsys.dbms_job.submit(job=>:job,what=>'declareoutputvarchar2(1000);beginp_audit_receipt_freeze(output);end;',next_date=>trunc(sysdate+1)+3/24,interval=>'tru
20、nc(add_months(sysdate,1)-10)');commit;end;设置时日期是10月15号,运行后,其中next_date是第二天凌晨3点,而interval通过计算后则为月份加一个月减去10天,为11月5号(有疑问)定时运行一个存储(不带参数的):variablejob1number;variableoutputvarchar2(1000);begindbms_job.submit(:job1,'p_audit_receipt_freeze;',trunc(sysdate+1)+3/24,'trunc(add_months(sysdate,1)-
21、10)');commit;end;设置时日期是10月15号,运行后,其中next_date是第二天凌晨3点,而interval通过计算后则为月份加一个月减去10天,为11月5号(有疑问)以上定时应该改为以下内容:(有待验证)VARIABLEjobnumber;beginsys.dbms_job.submit(job=>:job,what=>'declareoutputvarchar2(1000);beginp_audit_receipt_freeze(output);end;',next_date=>to_date('05-12-201203:00:00','d