Salut à tous,
je rencontre actuellement un problème :

Sous oracle 11g,
soit la table ma_table triée par id (varchar2) et numérotée dans la colonne nb.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
describe ma_table
Nom                            NULL     Type                                                                                                                                                                                          
------------------------------ -------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
ID                                  VARCHAR2(4000)                                                                                                                                                                                
NB                                      NUMBER                                                                                                                                                                                        
 
2 rows selected
Le premier ID a pour NB 1, le second 2, le troisième 3, le nième n.
Si je sélectionne l'id du 9999 enregistrement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
select ID from ma_table where nb ='9999'
--retourne BE12345
 
select count(*) 
from ma_table
where ID <= 'BE12345'
J'obtiens 11369 au lieu de 9999.
Je précise qu'il n y a pas de doublon au niveau des ID (ni nb).

Quelqu'un peut il m'expliquer pourquoi cela ne fonctionne pas ?
Qu'est ce qui se passe au niveau de la comparaison alphabétique des varchar pur l'ID ?

merci d'avance,
ben