Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/04/2009, 21:46
el_chileno
 
Fecha de Ingreso: junio-2004
Ubicación: Valdivia
Mensajes: 24
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: tabla mutante al disparar trigger

Cita:
Iniciado por jessifb88 Ver Mensaje
Tengo ciertas modificaciones a varias tablas dentro de una transacción.
Por otra parte tengo un trigger que se dispara AFTER UPDATE la primera tabla que se actualiza dentro de la transacción.
Como resultado obtengo este error:
ORA-04091: la tabla KRONOS.SV_PR_PROYECTO está mutando, puede que el disparador/la función no puedan verla
ORA-06512: en "KRONOS.SV_PQ_PROYECTOS", línea 193
ORA-06512: en "KRONOS.SV_PR_PROYECTO_CAMPOS_MOD_TRG", línea 4
ORA-04088: error durante la ejecución del disparador 'KRONOS.SV_PR_PROYECTO_CAMPOS_MOD_TRG'

Mi conclusión es que el trigger se dispara durante la transacción.
He visto que quitando FOR EACH ROW se resolvería el error pero yo no puedo hacerlo porque necesito mirar los valores antiguos y nuevos después del update.

Mi pregunta es: ¿Hay alguna forma de hacer que el trigger se dispare cuando la transacción haya finalizado?
Gracias

Ya encontré la solución al problema: era que desde el PL al que llamaba desde mi trigger hacía una consulta a la BD sobre la tabla asociada al trigger. Para arreglarlo pasé como parámetro al PL el valor de ese campo en vez de obtenerlo desde el PL. Es un fallo tonto de mi parte no haberme dado cuenta pero lo dejo registrado por si a alguien le pasa lo mismo alguna vez. Espero que sea útil!



uff uufff casi llego a ayudar y ya lo resolviste, hay que tener cuidado con esos trigger cuando te topas con la tablita que lo dispara!!.
Saludos