1、确保Oracle的工作模式答应启动队列治理器(SNP进程) SVRMGRL> Alter System Enable Restricted Session; 或 SQL> Alter System Disenable Restricted Session; 2、确保Oracle已配置任务队列治理器的启动参数
initSID.ora中: job_queue_process=n(0);(0-36)个进程 job_queue_interval=N(60);(1-3600)秒唤醒 3、将任务加入数据库的任务队列中 DBMS_JOB.Submit ( job out binary_integer, (任务号) what in varchar2, (执行任务的名称及入参) next_date in date, (任务执行的时间) interval in varchar2, (任务执行的间隔。null:执行一次;sysdate+m:周期性,每隔m天执行) no_parse in boolean ) 同时 grant execute on dbms_job to ...; 4、将要执行的任务,为存储过程等PL/SQL程序段 SQL> variable n number; SQL> begin 2 dbms_job.submit(n, 'my_job', sysdate, 'sysdate + 1/360'); 3 commit; 4 end 5 / SQL> print :n; 5、查看Job Table :user_jobs、dba_jobs Column:job (任务号) next_date (下次执行日期) next_sec (下次执行时间) failures (失败次数,失败16次则自动终止) broken (终止标志,Y/N)
|