sys.dbms_job:
PROCEDURE submit ( job OUT BINARY_INTEGER,
what IN VARCHAR2,
next_date IN DATE DEFAULT sysdate,
interval IN VARCHAR2 DEFAULT 'null',
no_parse IN BOOLEAN DEFAULT FALSE,
instance IN BINARY_INTEGER DEFAULT any_instance,
force IN BOOLEAN DEFAULT FALSE );
-- Submit a new job. Chooses JOB from the sequence sys.jobseq.
-- instance and force are added for jobq queue affinity
-- If FORCE is TRUE, then any positive integer is acceptable as the job
-- instance. If FORCE is FALSE, then the specified instance must be
running;
-- otherwise the routine raises an exception.
-- For example,
-- variable x number;
-- execute
dbms_job.submit(:x,'pack.proc(''arg1'');',sysdate,'sysdate+1');
El ejemplo sería:
BEGIN
dbms_job.Submit
( NULL, -- Id.del Job, que va a ser obtenido.
'UPDATE tabla SET x = y', -- PL/SQL del Update.
TRUNC(SYSDATE+1) + 9/24, -- Hora de Siguiete Ejecución.
-- :Mañana a las 9 de la noche.
'TRUNC(SYSDATE+1)', -- Intervalo de tiempo
-- :Todos los días.
TRUE -- Al crear, no validar el codigo PL/SQL.
);
END;
-- Con el siguiente query puedes obtener el Identificador, si es que no le
pasaste como variable al momento del Submit.
SELECT job, substr(what,1,25)
FROM ALL_JOBS
WHERE schema_user= ;
-- Para ejecutarlo puntualmente.
BEGIN
DBMS_JOB.RUN();
END;
Esta información se tomo de
http://listas.rcp.net.pe/pipermail/oracle/2001-November/000029.html
Ejemplo proporcionado por
Marco Caldas.
Copyright © por Manual Oracle Tutorial, Pl/Sql, Discoverer, Forms, Sql y Plsql - Orape Derechos Reservados.