Primer Commit
This commit is contained in:
79
DB/TRIGGERS/TRIG_UPD_DEP_SCH_DETAIL.sql
Normal file
79
DB/TRIGGERS/TRIG_UPD_DEP_SCH_DETAIL.sql
Normal file
@@ -0,0 +1,79 @@
|
||||
--------------------------------------------------------
|
||||
-- DDL for Trigger TRIG_UPD_DEP_SCH_DETAIL
|
||||
--------------------------------------------------------
|
||||
|
||||
CREATE OR REPLACE EDITIONABLE TRIGGER "ENVX_OPER"."TRIG_UPD_DEP_SCH_DETAIL" AFTER
|
||||
UPDATE ON DEPLOYMENT_SCHEDULE_DETAIL
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_job_accion VARCHAR2(4000);
|
||||
v_estado NUMBER := 0;
|
||||
v_nombre_job VARCHAR2(1000);
|
||||
BEGIN
|
||||
|
||||
|
||||
CASE
|
||||
WHEN :new.SCHEDULE_DET_STATUS = 1 THEN
|
||||
|
||||
--Elimina el job con nombre anterior--
|
||||
BEGIN
|
||||
|
||||
v_nombre_job := :old.SCHEDULE_JOB_NAME;
|
||||
PKG_DEPLOY_COORDINATOR.p_elimina_job(
|
||||
pi_nombre_job => v_nombre_job
|
||||
);
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
NULL;
|
||||
END;
|
||||
--Elimina el job con nombre anterior--
|
||||
|
||||
--Genera le nuevo job--
|
||||
v_job_accion := 'BEGIN sicd.pkg_deploy_coordinator.first_dep_queue(pi_job_name => '''|| :new.SCHEDULE_JOB_NAME ||'''); END;';
|
||||
|
||||
PKG_DEPLOY_COORDINATOR.p_genera_job(
|
||||
pi_job_nombre => :new.SCHEDULE_JOB_NAME,
|
||||
pi_job_accion => v_job_accion,
|
||||
pi_job_tipo_frecuencia => :new.SCHEDULE_FEQUENCY,
|
||||
pi_job_fecha_inicio => to_timestamp(to_char(:new.SCHEDULE_INIT_DATE, 'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS'),
|
||||
po_estado => v_estado
|
||||
);
|
||||
--Genera le nuevo job--
|
||||
|
||||
--Actualiza los pedidos asignados al nuevo job--
|
||||
UPDATE deployment_request_queue drq
|
||||
SET drq.job_name = :new.SCHEDULE_JOB_NAME,
|
||||
drq.queue_date = to_date(to_char(schedule_next_date(:new.SCHEDULE_JOB_NAME),'DD/MM/YYYY')),
|
||||
drq.queue_alias = to_char(schedule_next_date(:new.SCHEDULE_JOB_NAME),'YYYYMMDDHHMISS')
|
||||
|| 'SC'
|
||||
|| :new.id_schedule_detail
|
||||
WHERE drq.job_name = :old.SCHEDULE_JOB_NAME
|
||||
AND drq.status_queue = 0;
|
||||
|
||||
--Actualiza los pedidos asignados al nuevo job--
|
||||
|
||||
WHEN :new.SCHEDULE_DET_STATUS = 0 THEN
|
||||
|
||||
--Elimina el job desactivado--
|
||||
BEGIN
|
||||
|
||||
v_nombre_job := :old.SCHEDULE_JOB_NAME;
|
||||
PKG_DEPLOY_COORDINATOR.p_elimina_job(
|
||||
pi_nombre_job => v_nombre_job
|
||||
);
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
NULL;
|
||||
END;
|
||||
--Elimina el job desactivado--
|
||||
|
||||
ELSE
|
||||
NULL;
|
||||
END CASE;
|
||||
|
||||
END;
|
||||
|
||||
/
|
||||
ALTER TRIGGER "ENVX_OPER"."TRIG_UPD_DEP_SCH_DETAIL" ENABLE;
|
||||
Reference in New Issue
Block a user