Subtillité incompréhensible dans Case
Bonjour, bonjour!
Je viens de créer une petite fonction basic qui doit retourner la région d'appartenance par rapport a un code postal donné.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| create or replace function FGet_GeoProfile( cp Varchar2)
return VARCHAR2
IS
l_cp Varchar2(2):= substr(cp,1,2);
l_geoProfile varchar2(20):= NULL;
BEGIN
IF l_cp is null then
l_geoProfile:= '1. South East';
ELSE
CASE l_cp
WHEN 'BA' || 'BH' ||'BS' ||'DT' ||'EX' ||'GL' ||'PL' || 'SN'|| 'SP' ||'TA' ||'TQ'||'TR' THEN
l_geoProfile:= '1. South East';
WHEN 'AL' || 'BN' || 'CM' || 'CO' || 'CR' || 'CT' || 'DA' || 'GU' || 'HP' || 'LU' || 'ME'
|| 'MK' || 'OX' || 'PO' || 'RG' || 'RH' || 'SG' || 'SL' || 'SO' || 'SS' || 'TN' || 'WD' THEN
l_geoProfile:= '2. South East';
ELSE
l_geoProfile:= 'Unknown';
END CASE;
END IF;
return l_geoProfile;
END; |
Je suis en Angleterre, les codes postaux commence par 2 lettres sur lesquels je fais mon test...
Mais en fait, ben cela ne fonctionne pas!
Le resultat est toujours 'Unknown':weird:
Avez-vous une idée du comment du pourquoi?? parceque je préfererais éviter que mes utilisateurs aient a gérer la variable a passer.
Merci