automatizacion de tareas con plsql

Automatización de tareas con PL/SQL

La automatización en APEX es escencial a la hora de correr procesos, en este post vamos a crear un log en el cual se escriba el nombre del usuario y la fecha cuando se logueo el usuario, esto para agregar mayor control a nuestra aplicación, además de ello el log de la aplicación solo durará un mes, pasando dicho tiempo será eliminado de forma automatica.

Vídeo

Código PL/SQL utilizado

Crear tabla

CREATE TABLE  "REGISTRO_SESION" 
   (	"ID" NUMBER, 
	"USUARIO" VARCHAR2(20), 
	"FECHA" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP, 
	 CONSTRAINT "REGISTRO_SESION_PK" PRIMARY KEY ("ID") ENABLE
   )

Crear secuencia

CREATE SEQUENCE   "REGISTRO_SESION_SEQ"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 41 CACHE 20 NOORDER  NOCYCLE;

Verificar los jobs existentes

select * from all_scheduler_jobs;
/
select * from ALL_SCHEDULER_JOB_RUN_DETAILS;

Stored procedure para limpiar la tabla de logs

create or replace procedure "LIMPIARLOG"
is
begin
 --eliminar todos los registros de la tabla REGISTRO_SESION
 delete from REGISTRO_SESION;
end;

Creación del job que se ejecutará cada mes

begin
dbms_scheduler.create_job (
   job_name           =>  'limpiar_logs_login',
   job_type           =>  'STORED_PROCEDURE',
   job_action         =>  'LIMPIARLOG',
   start_date         =>  '01-JUL-2018 03:00:00 AM',
   repeat_interval    =>  'FREQ=MONTHLY',
   enabled            =>  TRUE);
end;

Para ejecutar el job bajo demanda

EXEC dbms_scheduler.run_job('LIMPIAR_LOGS_LOGIN');

Ejemplos de como usar jobs

 

[kkstarratings]

1 comment on “Automatización de tareas (Job scheduler)

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.