Bonjour!

Je dois effectuer une modification dans un (long!!) programme, et avant toute chose j'essai de comprendre exactement ce qu'il fait.

Et notament je tombe sur une fonction oracle, et je ne comprend pas du tout ce qu'elle fait!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
create or replace FUNCTION F_NEW_NUMERO(value_n NUMBER) RETURN NUMBER IS N NUMBER;
BEGIN
    if value_n  > 1000  then
       BEGIN
         select 200000+min(numero_id) INTO N  from MaTable
         where flag=1 
         and (200000+numero_id not in (select numero_id from MaTable ));
         RETURN N;       
       END;        
     else  RETURN value_n ;           
     end IF;   
END F_NEW_NUMERO;
Pour les valeurs inférieur à 1000, c'est facile, cette fonction retourne la valeur passée en paramètre. Par contre, pour le reste, j'avou que pour moi c'est totalement incompréhensible:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
     select 200000+min(numero_id) INTO N  from MaTable
     where flag=1 
     and (200000+numero_id not in (select numero_id from MaTable ));
     RETURN N;
Si quelqu'un pouvait m'aider, se sera vraiment sympa...

Merci d'avance...