Hallo Sven,
ich habe keine Ahnung was Informix kann, aber ich würde etwa so vorgehen:
Du übergibst neben den Feldwerten noch deinen Suchbereich sb an deine Stored Procedure. In deinem Beispiel wäre sb = 10000. In deiner SP würdest du als erstes die Grenzen deines Suchbereiches festlegen:
SQL-Code:
lBound = :sb * 100 + 1
uBound = :sb * 100 + 98
Anschließend kannst du einen Cursor definieren für:
SQL-Code:
DECLARE c CURSOR FOR
SELECT nummer + 1 AS freienummer FROM tabelle o
WHERE o.nummer between lBound and uBound
AND NOT EXISTS (
SELECT i.nummer FROM tabelle i WHERE i.nummer = o.nummer + 1
)
Dieser Cursor listet dir alle freien Nummern im Range ...01 bis ...99, aber du kannst eventuell den result set auf ein singleton limitieren.
Grüße vom marabu