IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Tri de colonnes mystérieux


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Par défaut Tri de colonnes mystérieux
    bonjour,

    lors d'une requette ci dessous, les données me reviennent dans un ordre caractère-chiffre (respectivement trié correctement) alors que le bon sens voudrais que les données triés soit dans l'ordre chiffre-caractère...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     SELECT TABLE1.CHAMP
     FROM   
    	TABLE1, TABLE2, TABLE3
     WHERE  TABLE1.x= TABLE2.X
     and TABLE2.Y = TABLE3.Y
     and TABLE1.z = "xxx"
     ORDER BY TABLE1.CHAMP
    me retourne par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CHAMP
    ------
    A
    B
    C 
    D 
    1
    2
    3
    alors que j'attend :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CHAMP
    ------
    1
    2
    3
    A
    B
    C 
    D
    a noter que la requette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TABLE1.CHAMP
     FROM  TABLE1
    ORDER BY TABLE1.CHAMP
    me retourne mon champ dans l'ordre correct (chiffre-caractère)...

    étonnant non?

    je suis sous ORacle 9i, mais (pour la petite histoire) les table TABLE1, TABLE2, TABLE3 sont des vues construite sur un DBLink vers RDB (du type : view TABLE1 as select * from TABLE1@DBLINK)

    des pistes?

    merci.

    Patrice.

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par pdelorme Voir le message
    bonjour,

    lors d'une requette ci dessous, les données me reviennent dans un ordre caractère-chiffre (respectivement trié correctement) alors que le bon sens voudrais que les données triés soit dans l'ordre chiffre-caractère...
    ...
    Je ne suis pas certain que c'est une affaire de bon sens; je pense que c'est peut être une affaire de NLS_SORT.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 108
    Par défaut
    et si tu specifie ORDER BY TABLE1.CHAMP asc (ou desc) ?

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    C'est bien NLS_SORT qui permet de définir si on trie sur le jeu de caractères ou la valeur binaire.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Par défaut
    je regarde NLS_SORT maintenant,
    mais comment expliquer que selon les cas le tri fonctionne dans un sens ou dans l'autre... plutôt étrange non? on dirais que la jointure perturbe le tri...

    webfranc :
    j'ai essayé en rajoutant asc à mon order by mais ca ne change rien...

    P.

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    pour info : http://fadace.developpez.com/oracle/nls/

    les jointures peuvent effectivement changer l'ordre dans lequel Oracle récupère les données.

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Par défaut
    effectivement si je fait le tri de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TABLE1.CHAMP
    FROM TABLE1
    ORDER BY 
    	NLSSORT(TABLE1.CHAMP , 'NLS_SORT = GENERIC_BASELETTER');
    Ma colonne champ sort trié correctement...

    Cela dit... c'est un peut lourd et j'aimerais que ce tri soit celui par défaut (ce qui parais évident... chiffres-lettres)

    Et comment expliquer (voir mon premier Post) que le tri par défaut ne soit pas le même selon les cas sans cette option NLSSORT ?

    Patrice.

Discussions similaires

  1. Tri par colonne de n'importe quel StringGrid
    Par Dionyzos dans le forum Composants VCL
    Réponses: 3
    Dernier message: 02/07/2008, 16h47
  2. Tri des colonnes au choix
    Par nora_ora dans le forum Oracle
    Réponses: 4
    Dernier message: 06/10/2005, 17h11
  3. pb avec tri de colonne via un KStringGrid
    Par steph_1 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 04/10/2005, 11h40
  4. [JTable] Tri des colonnes
    Par djskyz dans le forum Composants
    Réponses: 10
    Dernier message: 17/03/2005, 10h14
  5. Tri des colonnes d'une DBGRID
    Par Atrebate62 dans le forum Bases de données
    Réponses: 3
    Dernier message: 31/05/2004, 12h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo