Social Icons

jueves, 16 de agosto de 2018

Trigger sobre FeatureClass


1.- En la Geodatabase tenemos creado el DataSet GIS.Capacitacion
2.- Tenemos creado el FeatureClass EncuestaAbril2018
3.- Creo el Trigger para que me permita calcular las notas en base a lo que el usuario contesta.

create or replace TRIGGER RRHH_EncuestaAbril2018
    BEFORE INSERT OR UPDATE ON GISRRHH.EncuestaAbril2018
    FOR EACH ROW
BEGIN
    
    :new.SUMACON := nvl(:new.PREGUNTA1,0) + nvl(:new.PREGUNTA2,0) + nvl(:new.PREGUNTA3,0); 
    :new.SUMAMET := nvl(:new.PREGUNTA4,0) + nvl(:new.PREGUNTA5,0);
    :new.SUMAINS := nvl(:new.PREGUNTA6,0) + nvl(:new.PREGUNTA7,0)+nvl(:new.PREGUNTA8,0) + nvl(:new.PREGUNTA9,0)+nvl(:new.PREGUNTA10,0); 
    :new.SUMALUG := nvl(:new.PREGUNTA11,0) + nvl(:new.PREGUNTA12,0); 
    :new.SUMAPUN := nvl(:new.PREGUNTA13,0) + nvl(:new.PREGUNTA14,0)+ nvl(:new.PREGUNTA15,0); 
    
    :new.PROMEDIOCON := (nvl(:new.PREGUNTA1,0) + nvl(:new.PREGUNTA2,0) + nvl(:new.PREGUNTA3,0))/3; 
    :new.PROMEDIOMET := (nvl(:new.PREGUNTA4,0) + nvl(:new.PREGUNTA5,0))/2;
    :new.PROMEDIOINS := (nvl(:new.PREGUNTA6,0) + nvl(:new.PREGUNTA7,0)+nvl(:new.PREGUNTA8,0) + nvl(:new.PREGUNTA9,0)+nvl(:new.PREGUNTA10,0))/5; 
    :new.PROMEDIOLUG := (nvl(:new.PREGUNTA11,0) + nvl(:new.PREGUNTA12,0))/2; 
    :new.PROMEDIOPUN := (nvl(:new.PREGUNTA13,0) + nvl(:new.PREGUNTA14,0)+ nvl(:new.PREGUNTA15,0))/3; 
    
    
    
    IF (:new.SUMACON<12) THEN
    :new.RESULTCON:='INSUFICIENTE';
    END IF;
    IF  (:new.SUMACON>=12 AND :new.SUMACON<24 ) THEN
    :new.RESULTCON:='REGULAR';
    END IF;
    IF  (:new.SUMACON>=24 AND :new.SUMACON<27 ) THEN
    :new.RESULTCON:='BUENO';
    END IF;
    IF  (:new.SUMACON>=27 ) THEN
    :new.RESULTCON:='EXCELENTE';
    END IF;
    
    
    IF (:new.SUMAMET<8) THEN
    :new.RESULTMET:='INSUFICIENTE';
    END IF;
    IF  (:new.SUMAMET>=8 AND :new.SUMAMET<16 ) THEN
    :new.RESULTMET:='REGULAR';
    END IF;
    IF  (:new.SUMAMET>=16 AND :new.SUMAMET<18 ) THEN
    :new.RESULTMET:='BUENO';
    END IF;
    IF  (:new.SUMAMET>=18 ) THEN
    :new.RESULTMET:='EXCELENTE';
    END IF;
    
    
       IF (:new.SUMAINS<20) THEN
    :new.RESULTINS:='INSUFICIENTE';
    END IF;
    IF  (:new.SUMAINS>=20 AND :new.SUMAINS<40 ) THEN
    :new.RESULTINS:='REGULAR';
    END IF;
    IF  (:new.SUMAINS>=40 AND :new.SUMAINS<45 ) THEN
    :new.RESULTINS:='BUENO';
    END IF;
    IF  (:new.SUMAINS>=45 ) THEN
    :new.RESULTINS:='EXCELENTE';
    END IF;
  
    
IF (:new.SUMALUG<8) THEN
    :new.RESULTLUG:='INSUFICIENTE';
    END IF;
    IF  (:new.SUMALUG>=8 AND :new.SUMALUG<16 ) THEN
    :new.RESULTLUG:='REGULAR';
    END IF;
    IF  (:new.SUMALUG>=16 AND :new.SUMALUG<18 ) THEN
    :new.RESULTLUG:='BUENO';
    END IF;
    IF  (:new.SUMALUG>=18 ) THEN
    :new.RESULTLUG:='EXCELENTE';
    END IF;

 IF (:new.SUMAPUN<12) THEN
    :new.RESULTPUN:='INSUFICIENTE';
    END IF;
    IF  (:new.SUMAPUN>=12 AND :new.SUMAPUN<24 ) THEN
    :new.RESULTPUN:='REGULAR';
    END IF;
    IF  (:new.SUMAPUN>=24 AND :new.SUMAPUN<27 ) THEN
    :new.RESULTPUN:='BUENO';
    END IF;
    IF  (:new.SUMAPUN>=27 ) THEN
    :new.RESULTPUN:='EXCELENTE';
    END IF;

END;

4.- Lleno Datos de Prueba
5.- Le doy privilegios al usuario GISEDITOR
6.- Listo

No hay comentarios.:

Publicar un comentario

PELICULAS PARA VER

  Inexactitudes fácticas en las películas (msn.com) https://www.msn.com/es-co/entretenimiento/famosos/inexactitudes-f%C3%A1cticas-en-las-pel...

 
 
Blogger Templates