Salut,

J'ai un programme que j'ai trouvé sur le net et qui va me lister les combinaisons possibles de 5 caractères alphanumériques, genre :

00001
00002
...
00009
0000A
0000B
...
...
AC01E
...
...
ZZZZZ

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
FUNCTION TO_BASE_36 (nombre INTEGER) RETURN VARCHAR2 IS
 
  nb        INTEGER;
  res       VARCHAR2(100);
 
BEGIN
 
    nb    :=  nombre;
 
    WHILE nb >= 36
    LOOP
        res    :=  CHR(MOD(nb,36) + CASE WHEN MOD(nb,36) < 10 THEN 48 ELSE 55 END) || res;
        nb       :=  FLOOR(nb / 36);
    END LOOP;
 
    res :=  CHR(MOD(nb,36) + CASE WHEN MOD(nb,36) < 10 THEN 48 ELSE 55 END) || res;
 
    res :=  LPAD(res, 5, '0');
 
    RETURN res;
 
END;
Exemple d'appel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SELECT ROWNUM,LPAD(TO_CHAR(ROWNUM), 5, '0'),to_base_36(ROWNUM) FROM dual connect by level < 36*36*36*36;
Le souci est que je souhaite démarrer les combinaisons par les lettres au lieu des chiffres :

0000A
0000B
...
0000Z
00001
00002
...
000A0
000A1
...
AC01E
...
...
99999

J'ai beau essayé mais je trouve pas !!

Est-ce qu'il y a moyen d'avoir ce résultat ?

Mercii