/*
公司有個需求,由前端web 觸發"背景執行"的job(原因為long running 且要避免前端time out)
加上要紀錄相關log(as schedueler job),目前想到的方法就是
*/
1'先create 個 disabled scheduler job,job 內容就是你要執行的語法。
2'再撘配使用DBMS_JOB.SUBMIT
ex:
--set serveroutput on
DECLARE
job_no BINARY_INTEGER;
BEGIN
DBMS_JOB.SUBMIT (job=>job_no,what =>'begin dbms_scheduler.run_job(''"ben"."testjob"''); end;',next_date=>sysdate,interval=>null);
COMMIT;
--dbms_output.put_line(job_no);
END;
ps:
單獨使用 dbms_scheduler.run_job -> session need to wait for it to finish
使用DBMS_JOB.SUBMIT 則會background execution
--查詢running jobs
select * from dba_jobs_running
=========OK
本篇文章發表於2013-06-06 13:05
== 簽名檔 ==
Oracle/EBS/MS SQL DBA
--My BLOG
http://itgroup.blueshop.com.tw/benchenBEN/blog