create job 语句:
declare
job number;
begin
sys.dbms_job.submit(job,'PRODUCT;', --job要执行的工作(范例为要执行的存储过程)to_date('23-02-2012', 'dd-mm-yyyy'),'TRUNC(SYSDATE+1)'); --执行job的周期(每天凌晨零点)
dbms_output.put_line(job);
end;
job时间周期:
每天运行一次 'SYSDATE + 1'
每小时运行一次 'SYSDATE + 1/24'
每10分钟运行一次 'SYSDATE + 10/(60*24)'
每30秒运行一次 'SYSDATE + 30/(60*24*60)'
每隔一星期运行一次 'SYSDATE + 7'
------------
例子:
第一步:存储过程
1 CREATE OR REPLACE PROCEDURE PROC_QUALIFIED_STATUS 2 AS 3 MCOUNT INT; 4 BEGIN 5 FOR REC IN (SELECT ID_NUMERIC FROM SAMPLE S WHERE S.STATUS='C' ) 6 LOOP 7 SELECT COUNT(0) INTO MCOUNT FROM TEST T JOIN RESULT R ON T.TEST_NUMBER=R.TEST_NUMBER WHERE R.NAME='结论' AND R.TEXT='不符合规定' AND T.SAMPLE=REC.ID_NUMERIC; 8 IF MCOUNT>0 THEN 9 UPDATE SAMPLE S SET S.CT_QUALIFIED_STATUS='不符合规定',S.CT_RELEASE_STATUS='DSH' WHERE S.ID_NUMERIC=REC.ID_NUMERIC; 10 ELSE 11 UPDATE SAMPLE S SET S.CT_QUALIFIED_STATUS='符合规定',S.CT_RELEASE_STATUS='DSH' WHERE S.ID_NUMERIC=REC.ID_NUMERIC; 12 END IF; 13 END LOOP; 14 COMMIT; 15 EXCEPTION 16 WHEN OTHERS THEN 17 ROLLBACK; 18 END;
第二步:job创建
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 declare 2 job number; 3 begin 4 sys.dbms_job.submit(job,'PROC_QUALIFIED_STATUS;',to_Date('2013-12-31','yyyy-MM-dd'),'sysdate+30/(60*24*60)'); 5 dbms_output.put_line(job); 6 end;