Örneğin sadece bizim gönderdiğimiz bir herhangi komutu execute edecek şekilde prosedür yazmak bunlardan biri.Bu durumda sadece job için değil diğer başka limititasyonları da aşmış olabiliriz. (dmbs_job, database link gibi). Bu linkten bu amaçla yazmış olduğum prosedürü inceleyebilirsiniz.
Aşağıda job için yazlmış bir prosedür var. Bu prosedür ile diğer şema altındaki jobların sonraki çalışma zamanlarını, işin çalışma zaman aralığı kadar sonraya atamış olacağız.
yani next_date = hesaplanan interval olacak.
create or replace PROCEDURE app_user.job_ilerlet (tarih date) IS cmd varchar2(500) := ''; BEGIN FOR c IN (SELECT job, last_date, interval FROM user_jobs WHERE TRUNC (last_date) = TRUNC (tarih)) LOOP cmd := 'begin dbms_job.next_date('||c.job||', '||c.interval||'); commit; end;'; dbms_output.put_line(cmd); execute immediate cmd; END LOOP; END;
/
Hiç yorum yok:
Yorum Gönder