Oracle - JOB Oracle para último día mes

 
Vista:

JOB Oracle para último día mes

Publicado por jfpalacio (2 intervenciones) el 13/05/2011 05:44:26
Hola todos:

He tratado de crear un JOB en Oracle para que se ejecute todos los meses únicamente el último día a las 4 a.m. consigo que se ejecute el último día del mes actual pero no queda programado para que se ejecute el último día del mes siguiente.

Aprecio mucho la ayuda que me puedan dar.

1
2
3
4
5
6
7
8
9
declare
vJobNumber binary_integer;
begin
dbms_job.submit(
job => vJobNumber,
next_date => TRUNC((LAST_DAY(TRUNC(SYSDATE)))+5/24),
interval => '(LAST_DAY(LAST_DAY(TRUNC(SYSDATE))+1))+5/24',
what => 'begin xxx(); end;'
);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

JOB Oracle para último día mes

Publicado por ulises (39 intervenciones) el 18/05/2011 22:21:15
1
2
3
4
5
6
7
8
9
10
11
12
declare
vJobNumber binary_integer;
begin
dbms_job.submit(
job => vJobNumber,
next_date => TRUNC((LAST_DAY(TRUNC(SYSDATE)))+5/24),
interval => '(LAST_DAY(LAST_DAY(TRUNC(SYSDATE))+1))+5/24', /* Tu problema esta aqui*/
---primero estas indicando que tome el ultimo dia del mes actual +1 ESTO ES IGUAL A HOY 18/05/2010 su ultimo dia = 31/05/2011
--luego le sumas 1 lo q hace es q se pasa al siguiente mes, y luego le indicas nuevamente last day lo que da como resultado 30/06/2011
-- en resumen se ejecutaria cada 2 meses
what => 'begin xxx(); end;'
);
PRUEBALO DE LA SIGUIENTE MANERA
1
2
3
4
5
6
7
begin
 
            next_date => to_date('31-05-2011 05:00:00', 'dd-mm-yyyy hh24:mi:ss'),
            interval => '(LAST_DAY (TRUNC(SYSDATE))+1 )+ 05/24');
            what => 'begin xxx(); end;'
end;
/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JOB Oracle para último día mes

Publicado por jfpalacio (2 intervenciones) el 21/05/2011 19:48:36
Hola ulises muchas gracias por tu valiosa ayuda, lo probaré así no más.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JOB Oracle para último día mes

Publicado por Maxi (1 intervención) el 30/08/2013 17:37:03
Buenas,
Se que es viejo el post, pero les puede llegar a servir a algunos....

Se configura en "repeat_interval", usando BYMONTHDAY, byhour , byminute y bysecond....
un ejemplo

1
2
3
4
5
6
7
8
9
10
11
BEGIN
  DBMS_SCHEDULER.create_job (
    job_name        => 'nombre_del_job',
    job_type        => 'PLSQL_BLOCK',
    job_action      => 'BEGIN proceso_en_la_base_o_codigo_plsql; END;',
    start_date      => SYSTIMESTAMP,
    repeat_interval => 'freq=MONTHLY; BYMONTHDAY=-1; byhour=12; byminute=25; bysecond=0;',
    end_date        => NULL,
    enabled         => TRUE,
    comments        => 'COMENTARIOS.....');
END;

Usando BYMONTHDAY=-1 estamos diciendo que tome el ultimo dia del mes en curso. Si usamos -2 sera el anteultimo y asi... Si usamos un numero positivo, contara al derecho... Ej: BYMONTHDAY= 15 ; , es el dia 15 de cada mes...

byhour va de 00 a 23. ej: 10 es 10 am, 12 es 12 del mediodia, 16 son las 4 pm
en este ejemplo se ejecuta el ultimo dia de cada mes, a las 12:25 del medio dia.

mas info:

http://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse004.htm

http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_sched.htm

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Federico

JOB Oracle para último día mes

Publicado por Federico (7 intervenciones) el 29/05/2014 22:12:35
Hola Maxi, encontre de ayuda tu respuesta, solo que algo no me esta funcionando, yo intente automatizar con un job este Store Procedure, pero me tira error... espero puedas darme una ayuda... gracias por tu tiempo.

CREATE PROCEDURE WEBGIS_CL_2014.SPFINALIZADA()
AS
BEGIN

UPDATE WEBGIS_CL_2014.WG_TAREAS_AVI
SET ESTADO = 'FINALIZADA'
WHERE ESTADO = 'TERMINADA';
COMMIT;

EXCEPTION WHEN OTHERS THEN
ROLLBACK;

END;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar