Bonjour à tous !

Je suis en train de devenir fou... je ne comprends pas ce qu'il se passe dans mon code, c'est très bizarre. Je suis sur une 10.2g

Voici le dit code :
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 get_comid(cp VARCHAR2,ville VARCHAR2,pays VARCHAR2)
RETURN number
AS result number;
BEGIN
select champ_a into result from matable...
if result is not null then
  result := 10;
else
  result := 20;
end if;
RETURN result;
END;
Jusque la tout va bien. Ma requete me retourne soit une ligne, soit rien.
Et niveau résultat, j'ai soit 10 soit null... alors que je devrais logiquement avoir 10 ou 20 et dans aucun cas je devrais avoir null.

Le problème n'est pas vraiment de retourner 20 mais dans le cas ou je n'ai pas de résultat a la première requete, il faut que j'en fasse une autre mais j'ai remarqué que je ne passais jamais dans le "else"

Je patoge... Merci de votre aide !