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;