Oracle - TRIGGER - Error: MUTATING - Alguien sabe???

 
Vista:

TRIGGER - Error: MUTATING - Alguien sabe???

Publicado por Oscar (3 intervenciones) el 07/02/2007 17:28:01
Buenas,

Tenco un 'Trigger' que se ejecuta después de la inserción en una tabla con la clausula 'FOR EATCH ROW' y necesito modificar uno de los campos del nuevo registro que se inserta.

Me da el error este y he probado unas cuantas cosas ya sin éxito.

Alguien me puede ayudar???.

Gracias y Saludos,
Oscar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:TRIGGER - Error: MUTATING - Alguien sabe???

Publicado por Rodolfo Reyes (445 intervenciones) el 08/02/2007 20:39:13
Este error te da, porque en el codigo del trigger estas haciendo un select, update, delette o insert sobre la misma tabla donde estas creando el trigger.

En pocas palabra, si estas haciendo un trigger sobre la tabla EMPLEADOS, dentro del trigger no puedes utilizar sentencias DML(Insert, delete, update, select) sobre la tabla empleados.

Y cuando si las creas y se ejecuta el trigger, da el error de Mutating Table.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TRIGGER - Error: MUTATING - Alguien sabe???

Publicado por JOSE LUIS BUSTOS (2 intervenciones) el 15/03/2007 10:40:12
la solucion a los triggers mutantes es hacer la operacion dentro de un packed.

un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TRIGGER - Error: MUTATING - Alguien sabe???

Publicado por christian (13 intervenciones) el 04/07/2007 20:42:11
HOLA QUE TAL LEI UN COMENTARIO QUE DISTES SOBRE TRABLAS MUTANDO EN LA WEB DEL PROGRAMADOR YO TENGO UN PROBLEMA EN ESO :

TE EXPLICO TENGO MIS TABLAS EN ORACLE 10G Y ESTAS SON;

drop table CABECERAFACTURA
CREATE TABLE CABECERAFACTURA(
NUMERO CHAR(5) primary key,
FECHA DATE,
CLIENTE CHAR(25),
DIRECCION CHAR(25) ,
SUB_TOTAL NUMBER(6,2),
IGV NUMBER(6,2),
TOTAL NUMBER(6,2)
)

drop table detallefactura

CREATE TABLE DETALLEFACTURA(
NUMERO CHAR(5) REFERENCES cabecerafactura(numero),
COD_PRODUCTO CHAR(5),
PRODUCTO CHAR(25),
CANTIDAD NUMBER(4),
PRECIO_UNITARIO NUMBER(6,2),
SUB_TOTAL NUMBER(6,2)
)

INSERT INTO CABECERAFACTURA VALUES('12345','21/03/2007','XXXXX','AV DOLORES',111,21.09,132.09)
INSERT INTO DETALLEFACTURA VALUES('12345','PR001','CD',10,1,10)
INSERT INTO DETALLEFACTURA VALUES('12345','PR002','MOUSE',5,8,45)
INSERT INTO DETALLEFACTURA VALUES('12345','PR003','TECLADO',8,7,64)

MI TRIGGER ES

CREATE TRIGGER LOLO
AFTER UPDATE ON DETALLEFACTURA
FOR EACH ROW
BEGIN
UPDATE DETALLEFACTURA SET SUB_TOTAL=CANTIDAD * PRECIO_UNITARIO;

END LOLO;

Y ESE TRIGGER ME BOTA ERROR QUE ESTOY MUTANDO QUE SOLUCION ME PODRIAS BRINDAR


GRAXIAS POR LA RESPUESTA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TRIGGER - Error: MUTATING - Alguien sabe???

Publicado por Oscar (3 intervenciones) el 04/07/2007 23:28:47
Buenasss christian,

Yo lo solucioné modificando la definición del TRIGGER para que en lugar de que se ejecute AFTER lo haga BEFORE.

Espero te sirva también,

Saludos,
Oscar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:TRIGGER - Error: MUTATING - Alguien sabe???

Publicado por je (2 intervenciones) el 10/05/2014 19:13:16
buenas tardes hoy tengo yo ese mismo problema y estoy planteando varias soluciones. Desde usar una tabla temporal y que desde alli ejecute otro trigger hasta varias maneras que he podido ver internet pero sin éxito.

Gracias Rodolfo pq tb he visto esa posible solución de la que hablas de empaquetar, pero como se hace? tienes un ejemplo de sintaxis donde se puede ver a modo de ejemplo.

Muchas gracias, este tema es interesante y de mucha utilidad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar