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 Procédural MySQL Discussion :

Illegal mix of collations


Sujet :

SQL Procédural MySQL

  1. #1
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut Illegal mix of collations
    Bonjour,

    Ayant une base de donnée avec beaucoup de proc stockées, j'ai fait des scripts cmd pour les copier et les compiler automatiquement.

    le probleme c'est que quand je lance mon traitement global j'ai le message d'erreur suivant :

    Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
    pour le corriger, il me suffit en general de trouver la (les) proc qui pose(nt) probleme et de les réenregistrer et de les compiler à nouveau.

    Est ce que quelqu'un pourrait m'expliquer d'ou vient ce probleme et comment y remédier ?

    merci

  2. #2
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    personne a une petite idée ?

    car je sais que le probleme vient du charset mais etant donné que cela intervient lorsque j'execute une proc stockée, je ne sais pas quelle variable modifier.

    Pour info toutes mes tables sont en latin1_swedish_ci

    merci

  3. #3
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Peut-être que le castage de ta chaine en latin pourrait résoudre le problème ?

  4. #4
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    faire un cast sur tout le code de mes proc stockées ?

  5. #5
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Je ne sais pas, je n'ai jamais eu ce genre d'erreur.
    C'était une suggestion.

  6. #6
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    je reviens sur ce probleme.

    J'ai regardé les tutoriaux pour comprendre pourquoi j'ai ce message d'erreur.

    La solution serait donc de faire un CONVERT( .. USING latin1) dans toutes mes clauses where.

    Mais ce que je trouve bizarre, c'est que si je compile directement mes proc stockées (par l'interface de toad), tout marche correctement par contre en compilant tout automatiquement en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql -h mon_serveur -p ma_bdd -u utilisateur --password=password <  script.sql
    ça marche plus.
    mon script ne fait pourtant que concatener les proc stockées en les separant pas un delimiter et il compile tres bien toutes les procedures stockées.


    en plus j'ai bien verifié toutes mes tables et la collation est toujours la meme à savoir "latin1_swedish" (ou un truc comme ça)

    quelqu'un aurait une explication à ce phénomène ?

  7. #7
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Ne m'engueule pas si je dis encore une connerie, mais y'a des options en ligne de commande sur les jeux de caractères.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -h mon_serveur -p ma_bdd -u utilisateur --default-character-set=latin1
    J'ai essayé chez moi le --default-collation=latin1_swedish_ci, mais ça ne passe pas.
    http://dev.mysql.com/doc/refman/5.0/...r-options.html

    Peut-être une piste.

  8. #8
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    je t'engueulerai pas mais au contraire je dirai plutot merci

    je regarde tout ça et on verra si ça résoud le probleme.


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

Discussions similaires

  1. Illegal mix of collations
    Par jak0 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 30/06/2011, 18h43
  2. [MySQL] Illegal mix of collations
    Par lodan dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 08/11/2007, 16h08
  3. [MySQL] Illegal mix of collations uniquement dans mon script
    Par lodan dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/09/2007, 18h28
  4. Illegal mix of collations avec UNION ALL
    Par lodan dans le forum Outils
    Réponses: 1
    Dernier message: 03/05/2007, 18h05
  5. Illegal mix of collations
    Par Gildas Huart dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/02/2006, 10h39

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