2 Replies Latest reply on Jun 21, 2018 12:25 PM by Carlos Emanuel Aquino Peralta

    Problema con Trigger en SQL

    mgrmanu10

      Buenas, les pido ayuda con un problema que tengo en sql developer. Se trata de un proyecto que tenemos que hacer para la universidad en el que nos piden que creemos un trigger que nos avise

      cuando un empleado cumpla 4 faltas, por lo cual será despedido. El problema lo tengo realmente en el if, ya que no se cual es realmente la sentencia que debo poner.

      He de aclarar que tengo una tabla creada llama FALTA, la cual contiene una ID_Falta (Primary Key), Descripcion,Fecha y NSS (numero de la seguridad Social).

      Tengo tambien una fucion creada que trata de contar el numero de faltas que un NSS ha cometido (Es decir, como cada persona tiene asociado un NSS determinado) pues cuento la cantidad de faltas que tiene un NSS y si es igual a 4 pues saltaria el disparador.

       

      En resumidas cuentas, me gustaria contar las faltas que tienen un NSS y si es igual a 4, entonces es cuando saltaria el trigger o disparador. Espero no ser de mucha molestia y gracias por su atencion.

       

      CREATE OR REPLACE TRIGGER FALTAS_EXPULSION

          AFTER INSERT ON FALTA

          FOR EACH ROW

       

       

      BEGIN

       

       

      SELECT numFaltasEmpleado INTO NSS FROM FALTA;

       

       

      IF : ((NSS.SIZE) == 4)

      THEN raise_application_error (-20599, 'The employee has commited 4 faults and must be fired'):

      END IF;

      END;

        • 1. Re: Problema con Trigger en SQL
          L. Fernigrini

          Ya abriste una pregunta en el foro general, lo ideal es no abrir mas de una pregunta por tema, ya hay varias personas comentando en dicho foro.

           

          Help me please! It is about a project for College| TRIGGER

           

          Te recomiendo que sigas el tema en ese foro y marques las respuestas útiles y llegado el caso la correcta.

           

          Luego si tienes alguna otra duda podes comenzar por este foro, pero en este caso creo que ya tenés bastante información en el thread abierto.

           

          PD: Perdón por el tuteo (tenés en vez de tienes) pero en Argentina hablamos así

          • 2. Re: Problema con Trigger en SQL
            Carlos Emanuel Aquino Peralta

            Buenos dias Mrgmanu10,

             

            Antes que nada analizando tu trigger, noto dos cuestiones a cuidar en tu desarrollo.

             

            1. La primera es que no estas utilizando las referencias ":new" y ":old" para referirte a tus campos.
            2. Y la segunda seria, que no podras hacer una consulta a los datos de la misma tabla sobre la cual esta tu trigger; si bien compilará sin errores el motor de oracle detectará que la tabla esta mutando.

             

            Para darle solucion a tu problematica, al menos a nivel de triggers, el mismo no puede estar sobre la tabla que consultas.