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

Requêtes PostgreSQL Discussion :

[Order by] espaces et caractères spéciaux


Sujet :

Requêtes PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 274
    Par défaut [Order by] espaces et caractères spéciaux
    Bonjour,

    Je viens de déployer mon logiciel sur une distribution de Suse.
    L'order by à un comportement étrange pour les espaces et les caractères spéciaux.

    Normalement " non désigné" devrait apparaitre en premier grace ) l'espace, mais sur cette version, il est positionné au niveau du "n".

    la meme requete ne propose pas le meme tri sur Suse que sur Débian ou Fédora, Windows, ...


    Comment ca se fait ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Ca doit être parce que le cluster postgres n'a pas été initialisé avec la même "locale" d'une distribution à l'autre. C'est l'option --locale de la commande initdb ou plus spécifiquement si nécessaire l'option --lc-collate. Par défaut l'install de la distrib linux prend la locale du système. Ce paramètre détermine entre autres les règles de tri.
    A partir de la version 8.4 de postgres, il doit être possible d'avoir une locale différente par base, spécifiée à la création de la base, mais avec les versions antérieures, ça ne peut être changé qu'en réinitialisant tout le cluster.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 274
    Par défaut
    je n'ai pas tout compris.. lol

    que dois faire pour que l'espace soit trié en 1er ?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Citation Envoyé par aldo-tlse Voir le message
    je n'ai pas tout compris.. lol

    que dois faire pour que l'espace soit trié en 1er ?
    Ca dépend. Quelle est la version de postgresql?
    Que répond la commande SQL sur l'instance qui trie comme tu veux et sur celle qui ne trie pas comme tu veux?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 274
    Par défaut
    sur la bd qui fait le mauvais tri : "fr_FR.UT8-8"

    et sur celle qui a un comportement satisfaisant : "French_France.1252"

    tu pense que le pb vient de la ?
    comment puis-je faire pour modifier le "fr_FR.UT8-8" en "French_France.1252" ?

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Citation Envoyé par aldo-tlse Voir le message
    et sur celle qui a un comportement satisfaisant : "French_France.1252"
    French_France.1252, c'est une locale de MS-Windows, avec son encodage Win-1252.
    Du coup ça ressemble plus à un problème de transfert de Windows à Unix que d'une distribution linux vers une autre.
    Utiliser une locale Windows sur Unix, c'est une idée que je ne conseillerais pas.

    Je suggèrerais plutôt de faire dans l'application un ORDER BY trim(champ) au lieu de ORDER BY champ pour ne pas dépendre de ces règles de tri variables sur les espaces en début de chaine.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/06/2013, 23h27
  2. Interdire les espaces (et caractères spéciaux) dans les fichiers
    Par Benoit.RTPW dans le forum Administration système
    Réponses: 4
    Dernier message: 19/05/2009, 10h00
  3. Suppression espace et caractère spéciaux dans une chaine de caractère
    Par arnaud036 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 12/10/2007, 11h51
  4. [XSLT] Caractères spéciaux (espace)
    Par yuri dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 02/12/2005, 17h18
  5. Traiter les caractères spéciaux
    Par ricola dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2003, 10h23

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