create or replace trigger t1
before insert on prenotazioni
for each row
 declare
  prenota number; 
  conta number;
begin

  select count(*) into conta
  from   agenzie
  where  nomeAgenzia = :new.agenzia;

  if (conta = 0)
   then insert into agenzie 
       values (:new.agenzia,1,:new.spesa);
   else begin
         select numPrenotazioni into prenota
         from   agenzie
         where  nomeAgenzia = :new.agenzia;

         if (prenota >=3)
           then raise p_ese5.troppePrenotazioni;
         end if;
       
         update agenzie
         set    numPrenotazioni = numPrenotazioni + 1,
                spesaTot = spesaTot + :new.spesa
         where  nomeAgenzia = :new.agenzia;
       end;
  end if; 

end;
/