最近做了一个系统自动抽检的东东Oracle中创建的Job会在自己设定的时间自动运行存储过程下面为最近总结的东东
假设你的存储过程名为PROC_RAIN_JM
再写一个存储过程名为PROC_JOB_RAIN_JM
内容是
///////////////////////////////////////////////////////////////////
Create Or Replace Procedure PROC_JOB_RAIN_JM
Is
li_jobno Number;
Begin
DBMS_JOBSUBMIT(li_jobnoPROC_RAIN_JM;SYSDATETRUNC(SYSDATE + ));
End;
///////////////////////////////////////////////////////////////////
最后那一项可以参考如下
每天午夜点 TRUNC(SYSDATE + )
每天早上点分 TRUNC(SYSDATE + ) + (*+)/(*)
每星期二中午点 NEXT_DAY(TRUNC(SYSDATE ) TUESDAY ) + /
每个月第一天的午夜点 TRUNC(LAST_DAY(SYSDATE ) + )
每个季度最后一天的晚上点 TRUNC(ADD_MONTHS(SYSDATE + / ) Q ) /
每星期六和日早上点分 TRUNC(LEAST(NEXT_DAY(SYSDATE SATURDAY) NEXT_DAY(SYSDATE SUNDAY))) + (*+)/(*)
其中li_jobno是它的ID可以通过这个ID停掉这个任务最后想说的是不要执行多次你可以在里面管理起来发现已经运行了就不SUBMIT
每天运行一次 SYSDATE +
每小时运行一次 SYSDATE + /
每分钟运行一次 SYSDATE + /(*)
每秒运行一次 SYSDATE + /(**)
每隔一星期运行一次 SYSDATE +
不再运行该任务并删除它 NULL
每年月号零时 trunc(last_day(to_date(extract(year from sysdate)||||yyyymmdd))+)