Bonjour,
Une table contenant 785000 lignes contient des factures (NUMFAC) dont le max est 996791 .
Cette colonne NUMFAC est du type number (6) , le numéro de la facture ne peut donc pas dépasser 1.000.000 .
Nous allons intégrer plus de 4000 factures dans l'application et nous ne pouvons pas toucher au design de l'application , en principe les numéros de facture commencent apres le max précisé ci-dessus .
Je voudrais trouver un trou dans la séquence de numéros de facture de plus de 5000 numéros . (pour forcer le démarrage à un autre numéro sans qu'il puisse y avoir de doublons) .
Il y a environ 28000 "trous" dans la suite de facture .
Comment trouver le trou ou , par exemple , NUMFAC passerait de 20000 à 25000 sans numéro entre les deux, cela doit être simple mais je ne suis pas doué en sql .
C'est l'application qui gére les numéros et non une séquence Oracle ( je sais, c'est nul !!) .
requête pour trouver tous les trous :
Cette table a une clé primaire (IDFACTURE) qui malheureusement n'a rien à vor avec ce numfac et qui est alplanumérique (pas de suite logique) .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT (NUMFAC) from tab where (numfac+1) not in (select numfac from tab) order by 1 ;
Evidemment, nous serions bien ennuyés si nous ne trouvions pas de trous et nous demanderons à la société éditrice de corriger cette anomalie .
Cordialement
Partager