Pubblico quest’articolo (e i successivi riguardanti Oracle) in collaborazione con la community di ITOUG.
Un job è l’insieme di uno schedulatore (Oracle Scheduler) e un programma. In breve un job è un programma schedulato (da un altro programma) in un certo intervallo di tempo.
Lo schedulatore è quindi un particolare programma Oracle che permette ad un utente la schedulazione dei programmi specificando un intervallo di tempo in cui verranno eseguiti.
La prima volta che lo schedulatore viene abilitato, un processo (che fa parte dei processi Oracle di background) chiamato Job Queue Process (CJQ) viene avviato sul db server, come mostrato nel seguente esempio:
GESTIONE DEI JOBS ORACLE
Premessa: i comandi utilizzati sono stati usati in un ambiente di test.
Il pacchetto che viene utilizzato per gestire i job è: dbms_scheduler (nelle versioni precedenti di db Oracle, veniva usato il pacchetto: dbms_jobs).
CREAZIONE DI UN JOB
Si possono creare differenti tipi di job:
- Blocchi PL/SQL anonimi
- Stored Procedures
- Java Stored Procedures
Per creare un job usando utenza SYSTEM ad esempio di tipologia blocco PL/SQL per lo schema dbuser si esegue la seguente procedura:
BEGIN DBMS_SCHEDULER.create_job (job_name => 'dbuser.my_job1', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN DBMS_STATS.GATHER_TABLE_STATS(''DBUSER'', ''DETTLISTINI''); END;', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY', end_date => NULL, enabled => TRUE, comments => 'Gather table statistics' ); END;
Nota: in questo caso il blocco PL/SQL anonimo utilizzato non è salvato nel db ma dev’essere caricato ogni volta che si vuole eseguirlo; questo vuol dire definirlo nel parametro job action ogni volta che si vuole utilizzarlo.
Per leggere l’articolo completo visita: