Lo scrivo perchè così me lo ricordo… è già la terza volta che lo cerco e ci spreco mezza giornata…
- Prima di tutto prendetevi la procedura da eseguire, basta il nome.
- Fate un’altra procedura, con il codice seguente: CREATE OR REPLACE PROCEDURE crea_job IS id_job number; BEGIN DBMS_JOB.SUBMIT(id_job, ‘SP_da_eseguire;’, sysdate, ‘sysdate+1’); COMMIT; END; /
È veramente necessario fare una procedura perchè mi sembra di aver capito che il primo parametro deve essere una variabile, e non una costante. L’unico modo è fare una procedura.
Il secondo parametro è l’istruzione (o le istruzioni) che il job eseguirà.
Il terzo parametro è il momento in cui verrà eseguito la prima volta, se volete farlo eseguire:
| domani a quest’ora | sysdate+1 |
| tra dieci minuti | sysdate+1/24/3600 |
| a mezzanotte | trunc(sysdate) |
| alle 9 di mattina | trunc(sysdate)+9/24 |
Il quarto parametro è l’intervallo tra i job, se volete farlo eseguire:
| solo una volta | null |
| ogni giorno | ‘sysdate+1’ |
| ogni giorno a mezzanotte | ’trunc(sysdate)+1’ |
| ogni giorno alle 9 di mattina | ’trunc(sysdate)+1+9/24’ |
Spero di essere stato utile anche a qualcun’altro.