ejecutar job
  • 15 julio 2018
  • Enrique Flores
  • 0

Correr un job bajo demanda y una vez

En algunas ocasiones es necesario ejecutar un job que llame a un stored procedure, un script o algún bloque anónimo, una vez ejecutado deberá autodestruirse y no estar haciendo espacio en nuestros jobs que si deben correr con un horario fijo.

Yo uso mucho esto cuando uso un Data Loader en la tercera página, por ejemplo para hacer algo a los datos que acabo de subir, se me ocurre crear un proceso al darle Load y bueno terminará cuando tenga que terminar y no nos bloqueará la pantalla dicho procedure.

Bueno, pues para hacer esto solo es necesario usar el siguiente código:

begin
dbms_scheduler.create_job 
( 
job_name => 'una_vez', 
job_type => 'STORED_PROCEDURE', 
job_action => 'nombre_del_stored_procedure', 
start_date => sysdate, 
enabled => TRUE, 
auto_drop => TRUE, --una vez ejecutado se auto eliminará :(
comments => 'este job correra solo una vez ');
end;

Para cancelar el job cuando está corriendo:

dbms_scheduler.stop_job('USUARIO.NOMBRE_JOB',force=>true);

Para deshabilitar el job antes de que corra:

BEGIN DBMS_SCHEDULER.disable(name =>'USUARIO.NOMBRE_JOB'); END;

Para eliminar un job:

BEGIN DBMS_SCHEDULER.drop_job(job_name => 'USUARIO.NOMBRE_JOB'); END;

 

Documentación:

https://docs.oracle.com/cd/B28359_01/server.111/b28310/schedadmin002.htm#ADMIN12036

Post sugerido:

https://apex-developers.com/automatizacion-de-tareas-job-scheduler/

Por favor si te sirvió el tip, invitame un café dando clic a los anuncios, me ayuda muchísimo para no dormir y hacer más posts.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.