oracle建立job並執行job

愛人間發表於2016-02-05

1、首先job要在command命令下執行才有效
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'test;'
,next_date => to_date('05-02-2016 11:40:00', 'dd-mm-yyyy hh24:mi:ss')
,interval => 'sysdate+1/24'
,no_parse => TRUE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
/

2、job建立之後,看情況需不需要立即執行job,如果next_date在當前日期之後,如果執行run的話立即會執行一次,否則是到指定的時間執行;如果你設定的next_date的時間在當前日期之前那麼當時run和不run都會在系統當前的時間執行一次。

begin
dbms_job.run(job的id);
end;
/

記得commit;

job 的id可以通過select * from user_jobs;進行查詢

3、如果發現job到點沒有執行,那麼

show parameter job_queue_processes ;
看下
job_queue_processes的值,如果為0 那麼要將值改為大於零的數,
alter system set job_queue_processes=1;
即可.
4、檢視job執行情況
select * from user_jobs;
select * from dba_jobs_running;
select * from dba_jobs;


相關文章