Oracle - problemas con un trigger

 
Vista:

problemas con un trigger

Publicado por goya (89 intervenciones) el 29/08/2006 14:33:59
Cordial Saludo:

Tengo un problema con un trigger el when_button_pressed tiene el siguiente codigo:

BEGIN
INSERT INTO INVENTARIO(NRO_DOCUMENTO,TIPO_MOVIMIENTO,NRO_UBICACION,NRO_REFERENCIA,NRO_CLIENTE,UNIDAD,ESTIBA,FECHA_PROCESO,
FECHA_ENTRADA,cantidad,saldo,cod_estado,fecha_vence)
VALUES(:DETALLE_MOVIMIENTO.NRO_DOCUMENTO,1,upper(:DETALLE_MOVIMIENTO.NRO_UBICACION),:DETALLE_MOVIMIENTO.NRO_REFERENCIA,:DETALLE_MOVIMIENTO.NRO_CLIENTE,
:DETALLE_MOVIMIENTO.UNIDAD,:DETALLE_MOVIMIENTO.ESTIBA,SYSDATE,SYSDATE,:detalle_movimiento.cantidad,:detalle_movimiento.cantidad,'02',:detalle_movimiento.fecha_vence);
COMMIT;
END;
BEGIN
MESSAGE('DEBE INSERTAR 02');




INSERT INTO DETALLE_MOVIMIENTO( NRO_DOCUMENTO, TIPO_MOVIMIENTO, NRO_UBICACION, NRO_REFERENCIA,
NRO_CLIENTE, UNIDAD, CANTIDAD, LOTE, FECHA_VENCE, ESTIBA, NATURALEZA, COD_ESTADO, NRO_UBICACIONDEST,
SALDO, PROCESADO, FECHA_PROCESO,codigo_ean14 )
VALUES (:DETALLE_MOVIMIENTO.NRO_DOCUMENTO, 1,upper(:DETALLE_MOVIMIENTO.NRO_UBICACION), :DETALLE_MOVIMIENTO.NRO_REFERENCIA,
:DETALLE_MOVIMIENTO.NRO_CLIENTE, :DETALLE_MOVIMIENTO.UNIDAD,:detalle_movimiento.cantidad, :detalle_movimiento.lote,
:detalle_movimiento.fecha_vence, :detalle_movimiento.estiba, 'E', '02',NULL, :detalle_movimiento.cantidad, 'S',
TO_Date( 'sysdate', 'MM/DD/YYYY HH:MI:SS AM'),:detalle_movimiento.codigo_BARRAS);

COMMIT;
display_error;
END;

Este codigo inserta bien en la tabla inventario, pero en la tabla detalle_movimiento lo que hace es me hace el primer insert luego cuando limpio los campos y le doy otra ves clic en el boton, entonces lo que hace en la tabla detalle_movimiento es hacer un update del registro que antes habia insertado, y lo que necesito es que me inserte un nuevo registro.
que puedo hacer para que esto me funcione?
Gracias,
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:problemas con un trigger

Publicado por Ricardo (84 intervenciones) el 05/09/2006 16:16:48
Hola:

Por lo que veo, tenés una tabla 'DETALLE_MOVIMIENTO' y a la vez un bloque que también se llama 'DETALLE_MOVIMIENTO'. Si el bloque 'DETALLE_MOVIMIENTO' se está basando en la tabla 'DETALLE_MOVIMIENTO' no deberías hacer el insert 'a mano', es decir 'insert into DETALLE_MOVIMIENTO....', sinó crear un registro nuevo en blanco del bloque 'DETALLE_MOVIMIENTO' y luego llenar los datos...

Comentame si es asi, si entendí bien tu problema.

Saludos
Ricardo.
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