-- baza danych bd/ddl/las.create
-- SPRAWIC ABY:
-- numeracja pasnikow  zaczynala sie od 1 i nie miala dziur 

create or replace procedure UsunDziury is
  cursor nry is select nr from pasniki order by nr desc;
  licznik integer;
  kolejnyNr integer;
  najwiekszy integer;
begin
  select max(nr) 
    into najwiekszy 
    from pasniki;
  -- najpierw wstawiamy numery powyzej maksymalnego, zeby zrobic miejsce
  open nry;
  licznik := 1;
  loop
    fetch nry into kolejnyNr;
    exit when nry%notfound;
    update pasniki 
      set nr = najwiekszy + licznik 
      where nr = kolejnyNr;
     licznik := licznik + 1;
  end loop;
  close nry;
  -- teraz normalizujemy sciagajac do numeracji od jedynki
  update pasniki set nr = nr - najwiekszy;
end;
/ 
