Bonjour tous le monde,

Je suis face à un problème bizarre.
Je suis sur un projet swing avec JDBC et Oracle.
Mon problème c'est le tri.
J'ai un Jtable, quand je demande de faire le tri il ne trie pas comme il faut.
Je m'explique.
si j'ai 0,2,10,12,20 quand je fais le tri par ordre croissant il m'affiche : 0,10,12,2,20 alors que je veux 0,2,10,12,20
Ce que je fais c'est que je récupère le type de mon champ et je rajoute le type devant afin d'envoyer la requête à oracle en la préfixant avec le type.
des fois ça marche mais pour d'autres champs ça marche pas.
voici mon extrait du code:
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
public String getAttribut() {
        String result = attribut.getNomCourt();
        String dataType = attribut.getField().getDataType();
        LOG.info(" La colonne :  " + result + " est de type : " + dataType);
 
        if (dataType.equals(Field.DATATYPE_INTEGER) || dataType.equals(Field.DATATYPE_DECIMAL)) {
            return result = "TO_NUMBER(" + result + ")";
        }
        if (dataType.equals(Field.DATATYPE_INT_DATE)) {
            return result = "TO_DATE(" + result + ")";
        }
        if (!caseSensitive) {
            return result = "UPPER(" + result + ")";
        }
        return result;
    }
Je sais pas vraiment ce qu'il faut faire.
Merci de me dire si vous avez deja eu ce probleme et quelle pistes avez vous explorer.
Le truc qui me vient a l'esprit est de prendre le champ peu importe son type et examiner la valeur suivant les types predeifinies.
Peut etre y'a des choses que je n'ai pas saisi en disant ça.

un exemple de la trace:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
La colonne :  SERV_NL_CODE est de type : TEXT
voici le champ en question :
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
24
25
26
27
28
29
30
0004
1508
1404
1604
1604
1604
1104
2704
1114
1204
1209
0000
0000
1604
2114
2604
2214
2214
2214
0000
2524
1304
1304
2134
1204
2214
0704
1808
0704
2214
Pour info tous les champs dans la base sont de type varchar2. et il est impossible de changer le type car c'est une veille application et changer le type demande un travail colossal.

Cordialement