DBMS_DATA_TOOLS_JOBS Riferimento pacchetto

In questo capitolo vengono fornite informazioni sui pacchetti utilizzati con la funzione Job in Data Studio. L'argomento di riepilogo dei sottoprogrammi DBMS_DATA_TOOLS_JOBS riguarda anche le procedure incluse nel pacchetto DBMS_DATA_TOOLS_JOBS.

Riepilogo dei sottoprogrammi DBMS_DATA_TOOLS_JOB

Il pacchetto DBMS_DATA_TOOLS_JOB fornisce una raccolta di funzioni e procedure di pianificazione utilizzate con la funzione Job nella suite di strumenti Data Studio.

DBMS_DATA_TOOLS_JOB Sottoprogrammi del pacchetto

La tabella seguente elenca i sottoprogrammi DBMS_DATA_TOOLS_JOB e li descrive brevemente.

Tabella 3-11 DBMS_DATA_TOOLS_JOB Nomi e descrizione dei sottoprogrammi DBMS_DATA_TOOLS_JOB

Sottoprogramma Descrizione
Procedura Crea job Questa procedura crea un nuovo job.
Procedura di eliminazione job Elimina il job dallo scheduler.
Rinomina procedura job Rinomina il job con il nome desiderato.
Procedura di aggiornamento job Modifica gli attributi di un job esistente.
Esegue la procedura Esegue immediatamente un job indipendentemente dalla schedulazione definita.
Interrompi procedura job Arresta un job in esecuzione. Questo termina un lavoro con grazia, e se necessario, fermarlo con la forza.

Procedura CREATE_JOB

Questa procedura crea un singolo job. Se si crea il job come abilitato impostando l'attributo abilitato su TRUE, lo scheduler esegue automaticamente il job in base alla relativa pianificazione. Se si crea il job disabilitato, il job non viene eseguito finché non viene abilitato con la funzione Abilita job.

Sintassi

dbms_data_tools_job.create_job(
                       job_name        in varchar2,
                       description     in varchar2,
                       steps           in clob,
                       owner           in varchar2 default null,
                       start_date      IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                       repeat_interval IN VARCHAR2                 DEFAULT NULL,
                       end_date        IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                       job_class       IN VARCHAR2                 DEFAULT NULL,
                       enabled         IN BOOLEAN                  DEFAULT FALSE,
                       reporting       in clob default null);

Parametri della procedura CREATE_JOB

Tabella 3-12 Parametri della procedura CREATE_JOB

Parametro Descrizione
Nome mansione Il nome da assegnare al job. Se job_name non viene specificato, viene generato un errore.
Descrizione Si riferisce a informazioni aggiuntive impostate per le mansioni.
Passi Si riferisce a vari task eseguiti dallo strumento Data Studio che comprendono un job.
I passi sono un array JSON. Ogni elemento array è un oggetto JSON. Di seguito sono riportati gli elementi JSON applicabili a tutti gli oggetti.
  • type: stringa, dichiara il tipo di passo che viene eseguito: data_load, smart_table, procedura, http.
  • stringa on_errors-
  • stop: se si verifica un errore, il job viene arrestato e viene generato l'errore.
  • continue: l'errore viene registrato, ma l'elaborazione continua con il passo successivo del job.
  • step_name: nome descrittivo del passo da visualizzare nei log

Ogni tipo di oggetto ha alcuni elementi aggiuntivi a seconda del tipo.

data_load:
  • data_load_name: (obbligatorio) il nome di un caricamento dati creato in precedenza da eseguire

smart_table:
  • recipe_name: (obbligatorio) il nome di una recipe Smart Table creata in precedenza da eseguire.
  • url - URL REST (obbligatorio) a cui connettersi.
  • method - GET (impostazione predefinita), POST, PUT, DELETE o altri verbi HTTP
procedure:
  • procedure - (obbligatorio) nome della procedura da eseguire. Facoltativamente, può essere qualificato come schema e può essere una procedura nuda o un metodo di pacchetto.

  • arguments: array di argomenti stringa, numerici o booleani da fornire alla procedura.
Owner

È lo schema in cui viene creato il job. Se si crea un job senza specificare uno schema, il proprietario sarà l'utente che esegue la procedura CREATE_JOB.

Data di inizio

Questo attributo specifica la prima data e ora in cui è schedulato l'avvio del job. Se start_date e repeat_interval vengono lasciati nulli, l'esecuzione del job verrà pianificata non appena il job sarà abilitato.

Per i job ripetuti che utilizzano un'espressione di calendario per specificare l'intervallo di ripetizione, start_date viene utilizzato come data di riferimento. La prima volta che il job viene eseguito è la prima corrispondenza dell'espressione di calendario corrispondente o successiva alla data e all'ora correnti.

Lo scheduler non può garantire che un job venga eseguito in un'ora esatta perché il sistema potrebbe essere sovraccaricato e quindi le risorse non sono disponibili.

Intervallo ripetizione

Questo attributo specifica la frequenza di ripetizione della finestra. Viene espresso utilizzando la sintassi del calendario Scheduler. Per ulteriori informazioni, vedere "Sintassi di calendario".

Impossibile utilizzare un'espressione PL/SQL per specificare l'intervallo di ripetizione per una finestra.

L'espressione specificata viene valutata per determinare la volta successiva in cui viene aperta la finestra. Se non viene specificato alcun valore repeat_interval, la finestra viene aperta una sola volta alla data di inizio specificata.

Data di fine

Questo attributo specifica la data e l'ora dopo la quale il job scade e non viene più eseguito.

Il valore di end_date deve essere successivo al valore di start_date. Se end_date è minore di start_date, verrà generato un errore. Se end_date è uguale a start_date, il job non verrà eseguito e non verrà generato alcun errore.

Se non viene specificato alcun valore per end_date, il job verrà ripetuto per sempre a meno che non si utilizzi stop job.
Classe mansione La classe a cui è associato questo job.
Abilitato Questo attributo specifica se il job viene creato abilitato o meno. Le impostazioni possibili sono TRUE o FALSE. Per impostazione predefinita, questo attributo è impostato su FALSE e, pertanto, il job viene creato come disabilitato. Un job disabilitato indica che i metadati del job sono stati acquisiti e che il job esiste come oggetto di database. Tuttavia, lo scheduler ignora il job e il coordinatore del job non lo sceglie per l'elaborazione. Affinché il coordinatore della mansione possa elaborare la mansione, la mansione deve essere abilitata. È possibile abilitare un job selezionando l'icona Enable Job.
Segnalazione Questo attributo specifica i dettagli di esecuzione del job tramite il pulsante Report nella funzione Job.
Questo è un oggetto JSON simile all'argomento di reporting per dbms_live_feed. Può contenere i seguenti elementi:
  • completed: destinazioni a cui inviare una notifica quando un job viene completato.

  • errors: le destinazioni da notificare quando un passo di un job ha rilevato errori.

  • failed: indica quando un job ha avuto un errore irreversibile al di fuori del contesto di un passo.

  • long: destinazioni a cui inviare una notifica quando un job è stato eseguito a lungo.

Ciascuno di questi quattro elementi può specificare una matrice di indirizzo e-mail nell'elemento smtp o nei canali slack nell'elemento slack. L'elemento long può avere un elemento max_runtime_seconds che determina la durata dell'esecuzione di un job prima che venga considerato troppo long.

Procedura DELETE_JOB

Questa procedura elimina un job.

Sintassi

dbms_data_tools_job.delete_job(job_name in varchar2, owner in varchar2 default null);

Parametri della procedura DELETE_JOB

Tabella 3-13 Parametri della procedura DELETE_JOB

Parametro Descrizione
Nome mansione Il nome da assegnare al job. Se job_name non viene specificato, viene generato un errore.
Owner

È lo schema in cui viene creato il job. Se si crea un job senza specificare uno schema, il proprietario sarà l'utente che esegue la procedura CREATE_JOB.

Procedura RENAME_JOB

Questa procedura rinomina un job.

Sintassi

dbms_data_tools_job.rename_job(old_job_name in varchar2,
                       new_job_name in varchar2,
                       owner        in varchar2 default null);

Parametri della procedura RENAME_JOB

Tabella 3-14 Parametri della procedura RENAME_JOB

Parametro Descrizione
Vecchio nome job Il nome del job esistente.
Nuovo nome job

Il nome del nuovo job.

Owner

È lo schema in cui viene creato il job.

Procedura UPDATE_JOB

Questa procedura aggiorna qualsiasi attributo del job esistente.

Sintassi

dbms_data_tools_job.update_job(job_name in varchar2,
                       owner           in varchar2 default null,
                       description     in varchar2 default null,
                       steps           in clob default null,
                       start_date      IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                       repeat_interval IN VARCHAR2                 DEFAULT NULL,
                       end_date        IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                       job_class       IN VARCHAR2                 DEFAULT NULL,
                       enabled         IN BOOLEAN                  DEFAULT NULL,
                       reporting       in clob default null);

Parametri della procedura UPDATE_JOB

Tabella 3-15 Parametri della procedura UPDATE_JOB

Parametro Descrizione
Nome mansione Il nome del processo da aggiornare.
Owner

È lo schema in cui il job deve essere aggiornato.

Descrizione La descrizione aggiornata da applicare.
Passi Nuovi passi per l'aggiornamento.
Data di inizio La nuova data di inizio.
Intervallo ripetizione Intervallo di ripetizione aggiornato.
Data di fine Data fine aggiornata.
Classe mansione La classe mansione aggiornata.
Abilitato Potrebbe essere abilitata o disabilitata.
Segnalazione Attributo di generazione report aggiornato.

Esegui procedura

Questa procedura esegue immediatamente un job.

Se un job è abilitato, lo scheduler lo esegue automaticamente. Non è necessario chiamare RUN_JOB per eseguire un job in base alla relativa pianificazione. Utilizzare RUN_JOB per eseguire un job al di fuori della pianificazione normale.

Sintassi

dbms_data_tools_job.run(job_name            in varchar2,
                owner               in varchar2 default null,
                use_current_session in number   default null,
                options             in clob     default null);

Parametri procedura RUN

Tabella 3-16 Parametri della procedura RUN

Parametro Descrizione
Nome mansione

Nome di job o lista di voci separate da virgole, ognuna delle quali è il nome di un job esistente, eventualmente preceduta da un nome di schema e da un separatore di punti.

Se si specifica un job con più destinazioni, il job viene eseguito su tutte le destinazioni. In questo caso, l'argomento use_current_session deve essere FALSE.

Owner

È lo schema in cui viene eseguito il job.

Usa sessione corrente

Specifica se l'esecuzione del job deve avvenire o meno nella stessa sessione da cui è stata richiamata la procedura.

Quando use_current_session è impostato su TRUE:
  • È possibile eseguire il test di un job e visualizzare eventuali errori nella riga di comando.

  • RUN può essere eseguito in parallelo con un job pianificato regolarmente.

Quando use_current_session è impostato su FALSE:
  • È necessario controllare il log dei job per trovare le informazioni sugli errori.
  • Tutti i campi rilevanti in scheduler_jobs vengono aggiornati.
  • RUN non riesce se è in esecuzione un job pianificato regolarmente.
Opzioni  

Procedura STOP_JOB

Questa procedura arresta l'esecuzione di job o di tutti i job in una classe di job.

Dopo l'arresto del job, lo stato di un job una tantum viene impostato su STOPPED, mentre lo stato di un job ripetuto viene impostato su SCHEDULED o COMPLETED, a seconda che venga pianificata l'esecuzione successiva del job.

Sintassi

 dbms_data_tools_job.stop_job(job_name in varchar2,
                     owner    in varchar2 default null,
                     force    in boolean  default false);

Parametri della procedura STOP_JOB

Tabella 3-17 Parametri della procedura STOP_JOB

Parametro Descrizione
Nome mansione

Nome di un job da arrestare. Si tratta del nome di un job esistente, eventualmente preceduto da un nome di schema e da un separatore di punti.

Owner

È lo schema in cui il job deve essere arrestato.

Forzato

Se force è impostato su FALSE, lo scheduler tenta di arrestare il job in modo esteso utilizzando un meccanismo di interrupt. Questo metodo restituisce il controllo al processo slave, che può aggiornare lo stato del job nella coda dei job in modo che venga arrestato. Se questo non riesce, viene restituito un errore.

Se force è impostato su TRUE, lo scheduler termina immediatamente lo slave del job. Oracle consiglia di utilizzare STOP_JOB con la forza impostata su TRUE solo dopo che un STOP_JOB con force impostato su FALSE non è riuscito.

L'uso dell'opzione force richiede il privilegio di sistema MANAGE SCHEDULER.