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.








Répondre avec citation


N'oubliez pas le bouton
et pensez aux balises [code]




Partager