
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');
[kkstarratings]
1 comment on “Automatización de tareas (Job scheduler)”