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

como usar for each

Estas en el tema de como usar for each en el foro de Oracle en Foros del Web. Espero explicar bien mi pregunta Tengo este trigger con un for each, y entiendo que un "for each" ejecuta la sentencias tantas veces como se ...
  #1 (permalink)  
Antiguo 18/10/2010, 14:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
como usar for each

Espero explicar bien mi pregunta

Tengo este trigger con un for each, y entiendo que un "for each" ejecuta la sentencias tantas veces como se haga un insert o update, cierto?
Lo que necesito es lograr que cuando se haga un insert o update en ENVIO, el trigger me recorra toda esa tabla y ejecute los comandos, pero solo con un insert o update.

Explico, actualmente si hago 3 inserts o updates, ok recorre la tabla ejecutando las sentencias y buscando los datos

Hay alguna forma de que lo haga despu'es del ultimo insert?

Me habian comentado que en mssql se usa un inserted, quiero saber si se puede en ORACLE



Código:
CREATE OR REPLACE TRIGGER TRG_ENVIO
  AFTER INSERT OR UPDATE ON ENVIO
FOR EACH ROW
DECLARE
   enqueue_options     dbms_aq.enqueue_options_t;
   ...
   cadena              VARCHAR2(20);
BEGIN
 IF (:NEW.VERIFICADO = '1') AND (:NEW.ENVIO = '1') AND (:NEW.REENVIO = '1') AND (:NEW.ENVIO = '0') THEN
   DBMS_OUTPUT.PUT_LINE('ENTREGANDO A ORACLE JMS...');
   ...
   dbms_aq.enqueue(queue_name => 'jms.QUEUE_ENVIO',
         ...
         msgid                => message_handle);
   DBMS_OUTPUT.PUT_LINE('ENTREGADO.');
 END IF;
END;
  #2 (permalink)  
Antiguo 19/10/2010, 04:47
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: como usar for each

Prueba a quitar el " For Each Row "

Etiquetas: Ninguno
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:20.