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 :

Traitement des espaces dans une requete SQL


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 123
    Points : 47
    Points
    47
    Par défaut Traitement des espaces dans une requete SQL
    Bonjour tout le monde,

    Dans une table de ma base de, j'ai des enregistrements insères avec des espaces, conséquence, mes requêtes select ne marchent pas.
    exemple :
    J'ai une table MaTable(id, nom,..) et je cherche les enregistrements avec nom = 'toto'.
    les lignes avec nom = ' toto' ou 'toto ', ou.. ne seront pas sélectionnées.

    est ce qu'il ya un moyen pour remédier à ce problème, sachant que like ne va pas me donner un bon résultat?

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 23
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    le meilleur moyen est de trimmer...

    select * from matable where rtrim(ltrim(nom))='toto';

    le mieux étant de virer les espaces à droite (rtrim) et à gauche (ltrim) une bonne fois pour toutes

    update mabase set nom= rtrim(ltrim(nom));

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 84
    Points : 90
    Points
    90
    Par défaut
    La solution serait d'utiliser la fonction TRIM . Pour verifier que ça marche essayer:
    select '<'||trim(' toto ')||'>' from dual
    par comparaison avec:
    select '<'||' toto '||'>' from dual

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Iskendor Voir le message
    le mieux étant de virer les espaces à droite (rtrim) et à gauche (ltrim) une bonne fois pour toutes
    Pour information
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ltrim(rtrim( ' jkjh jghk '))
    revient à faire

  5. #5
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Pensez à la balise CODE (l'icone # lorsque vous créez/editez un message)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2002] supprimer des espaces dans une requete
    Par sidde dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/02/2010, 08h51
  2. [DAO][00]Envoyer des valeurs dans une requete SQL direct
    Par Jeannot2 dans le forum VBA Access
    Réponses: 5
    Dernier message: 17/04/2007, 10h18
  3. INSERER DU TEXTE AVEC DES CHAMPS DANS UNE REQUETE SUR sql Srv 2000
    Par sauceaupistou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 10h02
  4. [MySQL] Comparer des info date dans une requete SQL
    Par kaygee dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/01/2006, 21h56

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