Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/12/2012, 14:44
morway
 
Fecha de Ingreso: enero-2009
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Como evitar el insert del before insert.

Hola, de nuevo compañero.

Pensaba que el update que hacías era para otra tabla. Lo que pretendes, a mi modo de ver parece demasiado rebuscado. desde el trigger BEFORE INSERT no tiene sentido forzar un UPDATE y cancelar el INSERT. Seguramente tendrás problemas por MUTATING del registro que estás insertando/actualizando.

Deberías plantearte encapsular esa funcionalidad que necesitas en un procedimiento que haga el INSERT o UPDATE según corresponda.

Ejemplo:

Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE P_GUARDAR_POLIZA( P_POLIZA IN POLIZASPRUEBA%ROWTYPE ) IS
  2.   --
  3.   v_NUMERO_POLIZAS NUMBER ;
  4.   --
  5. BEGIN
  6.   --
  7.   SELECT COUNT(*)
  8.    INTO v_NUMERO_POLIZAS
  9.      ...
  10.      ...
  11.  
  12.   IF V_NUMERO_POLIZAS > 0 THEN
  13.     --
  14.     UPDATE ...........
  15.     --
  16.   ELSE
  17.     --
  18.     INSERT .......
  19.     --
  20.   END IF;
  21.   --
  22. END;

Ago así, espero que te sirva.

Un saludo.
__________________
Anotaciones de un programador