CREATE TRIGGER GUSTAVO_CRUZ.PACTABLE_BIU0
BEFORE INSERT OR UPDATE
ON GUSTAVO_CRUZ.PACTABLE
FOR EACH ROW
DECLARE
e_datos EXCEPTION;
BEGIN
IF (:new.pacdepcodigo = '')
OR (:new.pacdepcodigo IS NULL)
THEN
:new.pacdepcodigo := : old.pacdepcodigo;
END IF;
IF (:new.pacmuncodigo = '')
OR (:new.pacmuncodigo IS NULL)
THEN
:new.pacmuncodigo := : old.pacmuncodigo;
END IF;
IF ((LENGTH(:new.pactipo) = 0)
OR (LENGTH(:new.pacnumero) = 0)
OR (LENGTH(:new.pacape1) = 0)
OR (LENGTH(:new.pacnom1) = 0)
OR (LENGTH(:new.pacsexo) = 0)
OR (LENGTH(:new.pacdepcodigo) = 0)
OR (LENGTH(:new.pacmuncodigo) = 0)
OR (LENGTH(:new.pacepscodigo) = 0))
THEN
RAISE_APPLICATION_ERROR(-20000, 'Faltan datos del paciente');
END IF;
IF ((:new.pactipo IS NULL)
OR (:new.pacnumero IS NULL)
OR (:new.pacape1 IS NULL)
OR (:new.pacnom1 IS NULL)
OR (:new.pacsexo IS NULL)
OR (:new.pacdepcodigo IS NULL)
OR (:new.pacmuncodigo IS NULL)
OR (:new.pacepscodigo IS NULL))
THEN
RAISE_APPLICATION_ERROR(-20000, 'Faltan datos del paciente');
END IF;
IF (:new.cronico IS NULL)
THEN
:new.cronico := 0;
END IF;
IF (:new.ipsres IS NULL)
THEN
:new.ipsres := 0;
END IF;
:new.paccompleto := '';
IF (:new.pacape1 IS NOT NULL)
THEN
:new.paccompleto := :new.pacape1;
END IF;
IF (:new.pacape2 IS NOT NULL)
THEN
:new.paccompleto := :new.paccompleto || ' ' || :new.pacape2;
END IF;
IF (:new.pacnom1 IS NOT NULL)
THEN
:new.paccompleto := :new.paccompleto || ' ' || :new.pacnom1;
END IF;
IF (:new.pacnom2 IS NOT NULL)
THEN
:new.paccompleto := :new.paccompleto || ' ' || :new.pacnom2;
END IF;
IF (:new.pacestado IS NULL)
THEN
:new.pacestado := 'Activo';
END IF;
END;
/