Come faccio a trovare errori per gli errori di Oracle di lavoro?

March 20

Database Oracle offre un metodo molto robusto, potente e personalizzabile per i lavori di pianificazione. A un livello base, un lavoro Oracle è un blocco di PL / SQL, il linguaggio di programmazione di Oracle, codice che viene pianificata l'esecuzione in un momento particolare. orari di lavoro possono essere molto intricato e il codice corsa per un lavoro Oracle possono essere di base come una dichiarazione di inserimento di una riga o di una procedura / SQL 10.000 linea PL. Per il bene di questo esempio, le specifiche del codice PL / SQL in esecuzione è irrilevante in quanto affronterà determinare la causa di processi non riusciti Oracle.

istruzione

1 Utilizzare il built in DBMS_SCHEDULER pacchetto per creare il lavoro. Supponendo che l'effetto desiderato è quello di eseguire la procedura apps.do_something ogni giorno alle 14:00 si sarebbe simile a questa:

INIZIO

DBMS_SCHEDULER.CREATE_JOB (

job_name => 'example_job',

JOB_TYPE => 'STORED_PROCEDURE',

job_action => 'apps.do_something',

data_iniziale => '20 -DEC-10 02.00.00 PM ',

repeat_interval => 'FREQ = DAILY,

Commenti => 'commenti lavoro qui »);

FINE;

/

2 Visualizzare il registro di lavoro per i messaggi di successo o di errore. Per impostazione predefinita, Oracle registra lo stato dei lavori in vista del dizionario dati DBA_SCHEDULER_JOB_LOG. In alternativa, se il lavoro è specifico per l'utente corrente, USER_SCHEDULER_JOB_LOG può essere interrogato. Una query esempio di questa vista è il seguente:

SELEZIONE timestamp, job_name, job_class, il funzionamento, stato da cui USER_SCHEDULER_JOB_LOG job_name = 'example_job';

3 Visualizzare le informazioni dettagliate sul processo. Per i lavori elencati con l'operazione definita come RUN, RETRY_RUN o RECOVERY_RUN nella vista DBA / USER_SCHEDULED_JOB_LOG, Oracle fornisce ulteriori dettagli in USER_SCHEDULED_JOB_RUN_DETAILS o DBA_SCHEDULED_JOB_RUN_DETAILS. Per esempio:

SELEZIONE TIMESTAMP, job_name, lo stato, ADDITIONAL_INFO

DA DOVE user_scheduler_job_run_details job_name = 'example_job'