EXCEPTION JOIN PERP ON LEVEL = PENR and FINR = 'x'

Sicher und schnell ist das allerdings nicht, da immerhin mehrere 1000 Zugriffe gemacht werden müssen.
Andererseits werden auch Lücken (also Löschungen) wieder verwendet.
Besser ist da schon immer eine eigene Tabelle mit der Nummernvergabe.
Ganz extrem hatte ich mir mal eine Tabelle der Nummern von n bis m erstellt.
Beim Ermitteln die erste Nummer genommen und gelöscht, so dass auch kein 2. Prozess dieselbe Nummer noch mal vergibt.
Beim Löschen (am besten Trigger) wird die freie Nummer in die Tabelle zurückgeschrieben.
Die Vorteile sind da auf meiner Seite;-).