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

PostgreSQL Discussion :

[Postgresql 8.3] Gestion du like


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    jnore
    Invité(e)
    Par défaut [Postgresql 8.3] Gestion du like
    Bonjour à tous,

    Je viens d'installer la version 8.3 de Pg.
    Je me rends compte qu'il gère le 'LIKE' différemment de la version 8.2.
    Ex:
    Le code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select clé from budgets2.annee_fiscale where clé like 2
    ne pose aucun problème sur la 8.2.

    Mais voici le message d'erreur que j'ai sur la 8.3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERROR:  operator does not exist: integer ~~ integer at character 50
    HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
    Quelqu'un confirme t-il le phénomène?
    A noter que ça va faire l'objet de toute une retouche de mes codes PHP. Notamment pour les variables qui servent à filtrer dans mes requetes.

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Déjà dans la doc 8.2 sur ce lien, il est écrit que LIKE ne sert que pour les chaînes de caractères. Donc en 8.2 ton 'LIKE 2' marchait peut-être mais n'était pas aux normes SQL. C'est toujours le problème des "abus de langage" que l'on fait sans s'en rendre compte mais qui sont corrigés implicitement par le SGBD dans une version, mais pas dans une autre. Voilà pourquoi il vaut toujours mieux dès le départ respecter la norme SQL

    Apparemment donc dans la 8.3 la syntaxe ne marche plus. Ton message d'erreur voulait sans doute dire qu'il faisait une conversion implicite en chaîne de caractères
    A mon avis tu n'as pas d'autre choix que revoir tout ton code pour convertir tes numeric en chaîne de caractères avant de pouvoir utiliser LIKE
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    jnore
    Invité(e)
    Par défaut
    Merci de ta réponse.

    Tu dois avoir raison.
    Tant pis, je vais gérer autrement. Ca n'est pas si dramatique que ça !

    Encore merci.

  4. #4
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,
    Citation Envoyé par scheu Voir le message
    A mon avis tu n'as pas d'autre choix que revoir tout ton code pour convertir tes numeric en chaîne de caractères avant de pouvoir utiliser LIKE
    Ca dépasse le seul cadre de LIKE, les conversions automatiques non conformes à la norme SQL ont été supprimées dans la 8.3 :
    Non-character data types are no longer automatically cast to TEXT
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Ah ben là voilà la vraie explication !
    Merci pour l'info
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

Discussions similaires

  1. gestion erreur postgresql
    Par viny dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 27/06/2008, 10h44
  2. Interface de gestion de postgresql ?
    Par kedare dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 22/03/2008, 14h24
  3. Gestion des dates avec PostgreSQL 8
    Par Goldorak59 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 30/08/2007, 07h54
  4. [PostgreSQL] Gestion des erreurs
    Par e1lauren dans le forum JDBC
    Réponses: 4
    Dernier message: 21/08/2006, 03h22
  5. [2D] Gestion d'une map Worms-like
    Par nicolas.pied dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 02/03/2006, 13h36

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