Bonjour,
J'ai une table ORACLE dans laquelle par suite d'ajouts et suppressions, il existe des numéros de séquence disponibles.
Par exemple : TABLE TBPRNI
IDPRNI;LILPRNI
3532;BANCS PD DE
3533;BANCS PD CH
3534;BANCS PD BE
3537;PRNIV INT ES
3539;PRNIV INT ES
3540;PRNIV DOM ES
3541;PRNIV DOM IT
3542;PRNIV PD ES
3543;PRNIV INT GB
Les numéros 3535 3536 3538 3544 et au-delà sont donc disponibles
Je sais récupérer le 1er numéro disponible de ma table.
renvoie 3535 (correct)SELECT MIN(A.IDPRNI) + 1
FROM TBPRNI A WHERE A.IDPRNI + 1
NOT IN (SELECT B.IDPRNI FROM TBPRNI B)
Mais j'ai besoin de récupérer les N premiers numéros disponibles ? N pouvant varier selon le contexte.
Si N=3, la requete SQL doit retourner 3535 3536 et 3538
Si N=5, la requete SQL doit retourner 3535 3536 3538 3544 et 3545
Je ne parviens pas à construire cette requete.
Une idée ?
PS : J'ai besoin que les 3 numéros soient remontées d'un seul coup. Impossible d'aller chercher le 1er numéro disponible, de commiter, de chercher le 2eme 1er numero dispo, de commiter, etc.
Partager