Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/10/2010, 14:27
nkiatu
 
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;