Ö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