For en Trigger Oracle

Hola foreros, ante todo agradecer el poder participar en este foro que creo que me puede venir muy bien para ver casos y aprender

Haber si alguien me puede ayudar a crear un Trigger

¿Sabes si se puede crear un FOR en un trigger? Es decir un bucle.

Os explico:

Quiero crear un trigger que cuando el campo estado cambie inserte un registro según el numero de registros asociado a otra tabla mediante un campo vinculado, ejemplo:

Si la factura 1 de la tabla 1, cambia a estado Finalizado
Insertar en la tabla 3 todas los registros de la tabla 2 que tiene el campo factura = 1.
End

Mi problema es que no se si puedo hacer un For y que inserte cada uno de los registros de la consulta.

No se si me he explicado bien, si tenéis alguna duda comentar.

Muchas Gracias

Re: ¿For en Trigger Oracle? -juanrikrdo
capoeira:
Si se puede hacer eso, por medio de un cursor,

create or replace trigger nombre_trigger
  before update of estado on t_factura
  for each row
declare
  — variables locales
  cursor c_cursor (p_factura number) is
                  select campo01, campo02, …., campoNN
                    from tabla01, tabla02, …., tablaNN
                  where ….
                    and ….
                    and nro_factura = p_factura;
begin
    for f in c_cursor(:new.nro_factura) loop
        insert into factura (campo01, campo02, …., campoNN) values (…………);
    end loop;
exception
    when others then
      raise_application_error(-20000, ‘Error inesperado en nombre_trigger: ‘||SQLERRM);
end nombre_trigger;

Espero te sirva.

Saludos cordiales

Leave a Reply