Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

[SOLUCIONADO] triger para una consulta de insercion

Estas en el tema de triger para una consulta de insercion en el foro de Oracle en Foros del Web. Hola, he estado ingresando unos datos en una tabla desde otras, pero necesito saber como podria ejecutar esa accion al registrar cualquier dato en una ...
  #1 (permalink)  
Antiguo 08/11/2017, 01:23
 
Fecha de Ingreso: octubre-2011
Mensajes: 132
Antigüedad: 13 años, 1 mes
Puntos: 4
triger para una consulta de insercion

Hola, he estado ingresando unos datos en una tabla desde otras, pero necesito saber como podria ejecutar esa accion al registrar cualquier dato en una de ella, ya que esta consulta la hacia al actualizar una determinada pagina, entonces lo que necesito es que en la tabla TB_ACTIVIDAD cada vez que alguien registe algo (cualquier cosa) me ejecute la siueitne consulta

Código SQL:
Ver original
  1. INSERT INTO acceso_sala_solicitud (id, codigo, solicitante, gabinete, sala, fecha_registro, detalle, id_usuario_registrador, statusgo)
  2.             SELECT NULL, A.IDTICKET, B.NOMBRES AS SOLICITANTE, A.GABINETE, D.NOMBRE AS SALA, A.FECHACREACION, A.PROPOSITO, A.USUARIOCREACION, TF.ESTADO
  3.             FROM TB_ACTIVIDAD A
  4.             INNER JOIN TB_USUARIO B ON A.IDSOLICITANTE = B.USERNAME
  5.             INNER JOIN TB_AREA E ON A.IDAREAINVOLUCRADA=E.IDAREA
  6.             INNER JOIN TB_AREA J ON A.IDMONITOREO=J.IDAREA
  7.             LEFT JOIN TB_TIPO_ACTIVIDAD H ON A.IDTRABAJO = H.IDTIPOACTIVIDAD
  8.             INNER JOIN TB_ESTADO K ON A.ESTADO = K.IDESTADO
  9.             LEFT JOIN TB_USUARIO C ON A.IDSUPERVISOR = C.USERNAME
  10.             LEFT JOIN TB_GOAP_PARAMETROVALOR D ON D.IDVALOR=A.IDSALA AND D.IDPARAMETRO = 4
  11.             INNER JOIN TB_TICKET_FLUJO TF ON TF.IDTICKET = A.IDTICKET
  12.             WHERE A.TIENESALA = 1 AND (A.ESTADO = 'EVA' OR A.ESTADO = 'EPR' OR A.ESTADO = 'PRO' OR A.ESTADO = 'EJE' OR A.ESTADO = 'EJ2')
  13.             AND TF.IDFLUJO = 103 AND A.IDTICKET NOT IN (SELECT ASS.codigo FROM acceso_sala_solicitud ASS) ORDER BY A.IDTICKET DESC

no se si es posible esto y como seria?, gracias de antemano por su ayuda.
  #2 (permalink)  
Antiguo 08/11/2017, 06:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: triger para una consulta de insercion

Es posible, es impráctico.
¿No sería mas simple que creases en la aplicación una llamada directa a la inserción de esos datos en una tabla de log?
Asumo que los usuarios NO insertan a mano por SQL...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/11/2017, 06:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: triger para una consulta de insercion

Es posible, es impráctico.
¿No sería mas simple que creases en la aplicación una llamada directa a la inserción de esos datos en una tabla de log?
Asumo que los usuarios NO insertan a mano por SQL...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 08/11/2017, 08:47
 
Fecha de Ingreso: octubre-2011
Mensajes: 132
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: triger para una consulta de insercion

Hola gnzsoloyo, gracias por responder.
Bueno lo que pasa es que esta aplicacion ya existe con muchos datos y se hizo otra mini aplicacion que lo que hace es extraer ciertos datos de esas tablas de la otra aplicacion para poder hacer ciertas cosas, y para traer esos datos realice esa consulta, la forma de traerlos o ejecutar esa consulta era ingresando a cierta pagina (algo asi com un boton actulizar datos) y me mostraba los datos obtenidos, asi cada ves que ingresa a esa pestaña hace esa consulta, pero creo seria mejor que cuando el usuario registre en la otra aplicacion automaticamente me haga esa consulta, no entiendo la perte de: "llamada directa a la inserción de esos datos en una tabla de log". por ahora para salir del paso necesito esto sie xiste otra forma te agradeceria em ilumines...
  #5 (permalink)  
Antiguo 09/11/2017, 18:39
 
Fecha de Ingreso: octubre-2011
Mensajes: 132
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: triger para una consulta de insercion

Hola, estuve probando el siguiente trigger

Código SQL:
Ver original
  1. CREATE OR REPLACE TRIGGER ActualizarSolicitud
  2.     AFTER INSERT ON TB_ACTIVIDAD
  3. BEGIN
  4.     INSERT INTO ACCESO_SALA_SOLICITUD (id, codigo, solicitante, gabinete, sala, fecha_registro, detalle, id_usuario_registrador, statusgo)
  5.             SELECT NULL, A.IDTICKET, B.NOMBRES AS SOLICITANTE, A.GABINETE, D.NOMBRE AS SALA, A.FECHACREACION, A.PROPOSITO, A.USUARIOCREACION, TF.ESTADO
  6.             FROM TB_ACTIVIDAD A
  7.             INNER JOIN TB_USUARIO B ON A.IDSOLICITANTE = B.USERNAME
  8.             INNER JOIN TB_AREA E ON A.IDAREAINVOLUCRADA=E.IDAREA
  9.             INNER JOIN TB_AREA J ON A.IDMONITOREO=J.IDAREA
  10.             LEFT JOIN TB_TIPO_ACTIVIDAD H ON A.IDTRABAJO = H.IDTIPOACTIVIDAD
  11.             INNER JOIN TB_ESTADO K ON A.ESTADO = K.IDESTADO
  12.             LEFT JOIN TB_USUARIO C ON A.IDSUPERVISOR = C.USERNAME
  13.             LEFT JOIN TB_GOAP_PARAMETROVALOR D ON D.IDVALOR=A.IDSALA AND D.IDPARAMETRO = 4
  14.             INNER JOIN TB_TICKET_FLUJO TF ON TF.IDTICKET = A.IDTICKET
  15.             WHERE A.TIENESALA = 1 AND (A.ESTADO = 'EVA' OR A.ESTADO = 'EPR' OR A.ESTADO = 'PRO' OR A.ESTADO = 'EJE' OR A.ESTADO = 'EJ2')
  16.             AND TF.IDFLUJO = 103 AND A.IDTICKET NOT IN (SELECT ASS.codigo FROM acceso_sala_solicitud ASS) ORDER BY A.IDTICKET DESC;
  17. END;

pero no me esta registrando en la tabla B el ultimo registro de la tabla A, alguien sabe en que me estoy equivocando, necesito me me registre tambien ese ultimo registro en la otra tabla.
  #6 (permalink)  
Antiguo 10/11/2017, 13:39
 
Fecha de Ingreso: octubre-2011
Mensajes: 132
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: triger para una consulta de insercion

Tema resuelto estaba bien el trigger :D

Etiquetas: actual, fecha
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:01.