You are on page 1of 2

PARA VER TODOS LOS JOBS

select * from all_jobs;


Para ver que es lo que hace el job puedes utilizar el paquete de PL/SQL del sist
ema
dbms_job
* DBA_JOBS: Muestra la información de todos los jobs de la base de datos.
* ALL_JOBS: Muestra la misma información que dba_jobs pero sólo los jobs a los c
uales puede acceder el usuario actual con el que se está realizando la consulta.
* USER_JOBS: Muestra la misma información que dba_jobs pero solo con los jobs
del cual es propietario el usuario con el que se realiza la consulta.
* DBA_JOBS_RUNNING: Esta vista contiene la información de todos los jobs que a
ctualmente están corriendo en la base de datos.
EJEMPLO DE JOB (1)
-- Reemplazar <USUARIO> por el usuario que ejecutará el procedimiento
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => '<USUARIO>.SP_CONSOLIDATION(NULL);'
,next_date => to_date('20/01/2009 00:00:00','dd/mm/yyyy hh24:mi:ss')
,interval => 'TRUNC(SYSDATE+1)'
,no_parse => FALSE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
EJEMPLO DE JOB (2)
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
(
job => X
,what => 'ESQUEMA.PROCEDIMIENTO_PROBANDO_CODIGO;'
,next_date => to_date('11/19/2008 08:49:08','mm/dd/yyyy hh24:mi:ss'
)
,interval => 'TRUNC(SYSDATE+7)'
,no_parse => FALSE
);
:JobNumber := to_char(X);
END;
OPCIONES PARA EL INTERVALO
Si el intervalo es cada 30 minutor seria
interval => SYSDATE+30/1440
Si el intervalo es cada domingo seria
interval => NEXT_DAY(TRUNC(SYSDATE), 'SUNDAY')
Si el intervalo es el primero de cada mes seria
interval => TRUNC(LAST_DAY(SYSDATE)) + 1
Execute daily 'SYSDATE + 1'
Execute once per week 'SYSDATE + 7'
Execute hourly 'SYSDATE + 1/24'
Execute every 10 min. 'SYSDATE + 10/1440'
Execute every 30 sec. 'SYSDATE + 30/86400'
Do not re-execute NULL
Cada media noche TRUNC(SYSDATE+1)
Cada 7 dias a la media noche TRUNC(SYSDATE+7)
cada 30 dias a la media noche TRUNC(SYSDATE+30)
cada domingo NEXT_DAY(TRUNC(SYSDATE), 'SUNDAY')
Cada dia a la 6 de la mañana TRUNC(SYSDATE+1)+6/24
cada 30 minutos SYSDATE+30/1440
cada dia primero de cada mes TRUNC(LAST_DAY(SYSDATE)) + 1
cada primero de cada mes a las 8:30 TRUNC(LAST_DAY(SYSDATE)) + 1 + 8/24 + 30
/1440

REMOVE JOB
EXECUTE DBMS_JOB.REMOVE(14144);

You might also like