-
¿Cómo puedo encontrar los errores de los fracasos de Oracle de empleo?
-
La base de datos Oracle ofrece un método muy robusto, potente y personalizable para la programación de tareas. En un nivel básico, un trabajo de Oracle es un bloque de PL / SQL, lenguaje de programación de Oracle, código que está programado para ejecutarse en un momento determinado. horarios de trabajo puede ser muy complicado y la ejecución de código para un trabajo de Oracle pueden ser tan básico como una instrucción de inserción una línea o una línea de 10.000 PL / SQL. Por el bien de este ejemplo, los detalles del código PL / SQL que se está ejecutando es irrelevante, ya que se dirigirá a la determinación de la causa de los trabajos con errores de Oracle.
Instrucciones
1 Utilizar el construido en DBMS_SCHEDULER paquete para crear el trabajo. Suponiendo que el efecto deseado es para ejecutar el procedimiento apps.do_something todos los días a las 2:00 pm se vería así:
EMPEZAR
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'example_job',
tipo_de_trabajo => 'STORED_PROCEDURE',
job_action => 'apps.do_something',
fecha_inicial => '20 dec-10 02.00.00 PM ',
repeat_interval => 'FREC = DIARIO,
=> comentarios Comentarios de los puestos de trabajo de aquí ');
FIN;
/
2 Ver las anotaciones de trabajo para los mensajes de éxito o de error. De forma predeterminada, Oracle registra el estado del trabajo en la vista de diccionario de datos DBA_SCHEDULER_JOB_LOG. Alternativamente, si el trabajo es específico para el usuario actual, USER_SCHEDULER_JOB_LOG se puede consultar. Una consulta de ejemplo de este punto de vista es el siguiente:
marca de tiempo SELECT, job_name, job_class, operación de estado de USER_SCHEDULER_JOB_LOG donde job_name = 'example_job';
3 Ver información detallada sobre el trabajo. Para los trabajos que figuran con la operación definida como RUN, RETRY_RUN o RECOVERY_RUN en la vista DBA / USER_SCHEDULED_JOB_LOG, Oracle proporciona detalles adicionales en USER_SCHEDULED_JOB_RUN_DETAILS o DBA_SCHEDULED_JOB_RUN_DETAILS. Por ejemplo:
TIMESTAMP SELECT, job_name, estado, ADDITIONAL_INFO
DE DONDE user_scheduler_job_run_details job_name = 'example_job'