dbms_job
Med dbms_job.isummit kan man putte et job i Oracles scheduler og få det til at køre med intervaller.Jeg har lavet følgende procedure:
procedure ZZZstart_job(jno BINARY_INTEGER) IS
jobno BINARY_INTEGER;
BEGIN
jobno := jno;
DBMS_JOB.ISUBMIT(jobno,\'ZZZINSERTJOBSCH;\', SYSDATE, \'SYSDATE + 10/86400\');
COMMIT;
END;
som ligger et job i \'job queue\' og skulle starte hvert 10 sekunde. ZZZINSERTJOBSCH er en procedure som indsætter nogle rækker i en tabel. Proceduren ser således ud:
Procedure ZZZInsertJOBSCH is
V_ANTAL Number;
Begin
for V_ANTAL in 1..3 loop
Insert Into ZZZTBLJOBSCH(Name) values (\'Test Linie nr. \' || V_ANTAL);
end loop;
COMMIT;
End;
Den bliver lagt i køen, men bliver ikke igangsat og begynder ikke at køre i intervaller. I next_sec bliver der insat et tidpunkt, men det er som at der er et eller andet som gør at jobscheduleren ikke fanger at der skal startes en kørsel.