Ver Mensaje Individual
  #5  
Antiguo 13-06-2017
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Reputación: 18
GustavoCruz Va por buen camino
Este es el Código
Código SQL [-]
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;
/

Última edición por Casimiro Notevi fecha: 13-06-2017 a las 23:05:54.
Responder Con Cita