Quiero crear un trabajo en Oracle 10g para ejecutar un proceso todos los días a las 9:00 am. Se supone que el nombre del proceso es pro_1001. Gracias por tu consejo.
Presentamos varias vistas de diccionario de datos:
Dba_jobs Esta base de datos define tareas en colas de tareas.
dba_jobs_running tareas actualmente en ejecución.
Tarea User_jobs propiedad del usuario actual
Configuración de intervalo del parámetro de intervalo de tiempo
Ejecute 'System Date 1' una vez al día
Ejecutar cada hora 'fecha del sistema 1/24'
Ejecutar 'fecha del sistema 10/(24*60)' cada 10 minutos
Ejecutar 'fecha del sistema 30/( cada 30 segundos 24* 60*60)'
Una vez a la semana 'Fecha del sistema 7'
Deje de ejecutar la tarea y elimínela como vacía.
El intervalo de tiempo anterior no garantiza que la próxima ejecución de la tarea será en un momento específico. Solo puede especificar el intervalo de tiempo entre dos ejecuciones de la tarea.
Ejemplo de fecha u hora concreta
Cada noche a medianoche ' trunc(sysdate 1)'
Cada mañana a las 8:30 ' trunc(sysdate 1 ) (8 * 60 30)/(24 * 60)'
Todos los martes a las 12 del mediodía 'Al día siguiente (trunc (sysdate), "Martes" 24/12)'
12 cada medianoche del primer día del mes' trunc(last _ day(sysdate) 1)'
Antes de resumir, explique los parámetros del trabajo uno por uno:
El parámetro del trabajo es el proceso Enviar() Devuelto binario_ineger. Este valor se utiliza para identificar de forma única el trabajo;
¿Cuáles son los parámetros del bloque de código PL/SQL que se ejecutará?
El parámetro next_date indica cuándo se ejecutará el trabajo. No es necesario especificar este valor al escribir un trabajo; el valor predeterminado es "4000-1-1";
El parámetro de intervalo de tiempo para volver a ejecutar el trabajo.
El valor de Intervalo es la clave para decidir cuándo volver a ejecutar el trabajo
Adjuntos se encuentran dos ejemplos que escribí yo mismo:
-1 a. m. todos los días
p>
Declaración
x número;
Inicio
sys.DBMS_job.submit(job = gt;x,
what = gtbegin pro_job_test.pro_job_dayend;',
next_date = gtto_date(' 13-07-2011 01:00:00 ',' dd -mm-yyyy hh24:mi: ss '),
intervalo = gtTRUNC (fecha del sistema 1) 1/24 ');
SYS. DBMS_OUTPUTPUT_LINE('El número de trabajo es: ' | | to _ char(x));
Enviar;
Fin;
-65438 0 días por mes .
Declaración
x número;
Inicio
sys.DBMS_job.submit(job = gt;x,
what = gtbegin pro_job_test.pro_job_month;end;',
next_date = gtto_date(' 01-08-2011 01:00:00 ' , 'dd-mm-aaaa hh24:mi:ss') ,
intervalo = gttrunc(last_day(sysdate) 1)');
SYS. DBMS_OUTPUTPUT_LINE('El número de trabajo es: ' | | a _ char(x));
Enviar;
Fin;