DBMS_JOB.SUBMIT(:jobno,//job号
                'your_procedure;',//要执行的过程
                trunc(sysdate)+1/24,//下次执行时间
                'trunc(sysdate)+1/24+1'//每次间隔时间
               );
删除job:dbms_job.remove(jobno);
修改要执行的操作:job:dbms_job.what(jobno,what);
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
启动job:dbms_job.run(jobno);
例子:
VARIABLE jobno number;
begin
      DBMS_JOB.SUBMIT(:jobno, 
              'Procdemo;', 
               SYSDATE, 'SYSDATE + 1/720');
         commit;
end;
/

解决方案 »

  1.   

    VARIABLE jobno number;
    begin
    DBMS_JOB.SUBMIT(JOBNO,'P_SetQYBMDZ(15);',trunc(sysdate)+1/24, 'trunc(sysdate)+1/24+1');
    COMMIT;
    END;
    总是说无效SQL语句
      

  2.   

    VARIABLE jobno number;
    begin
    DBMS_JOB.SUBMIT(JOBNO,'P_SetQYBMDZ(15);',trunc(sysdate)+1/24, 'trunc(sysdate)+1/24+1');
    COMMIT;
    END;你的这句好像比人家的例子少了个冒号。
      

  3.   

    谢谢shanyuliang(良子) ,是因为少了冒号。
      

  4.   

    chanet(牧师) ,除了用语句写,还有什么办法吗,我用plsqldevelop,写入SELECT * FROM USER_JOBS for update,然后在里面增加,总是说我没权限。
      

  5.   

    USER_JOBS 是数据字典,怎能让你增加删除declare
    jobno number;
    begin
    DBMS_JOB.SUBMIT(JOBNO,'P_SetQYBMDZ(15);',trunc(sysdate)+1/24, 'trunc(sysdate)+1/24+1');
    COMMIT;
    END;
    /