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;