Question

J'ai une base de données mysql qui contient le contenu sous forme de blob. Pour une raison quelconque, ces développeurs ont choisi d'utiliser un blob, ce qui est hors de mon contrôle. Est-il possible de convertir les données en texte et le type de données en texte?

Était-ce utile?

La solution

avez-vous essayé la commande alter table?

alter table mytable change mycolumn mycolumn text; 

from http://forums.mysql.com/ read.php? 103,164923,167648 # msg-167648 On dirait que vous pouvez utiliser CAST.

vous pouvez créer une nouvelle colonne (TEXT), puis la remplir avec une commande de mise à jour:

update mytable set myNewColumn = CAST(myOldColumn AS CHAR(10000) CHARACTER SET utf8) 

Autres conseils

La conversion du champ de blob en texte tronque tous les caractères > 127. Dans mon cas, nous avons beaucoup de caractères européens, donc ce n'était pas une option. Voici ce que j'ai fait:

  1. Créer un champ temporaire sous forme de texte
  2. Copiez le champ blob dans le champ temp: UPDATE tbl SET col_temp = CONVERT (col USING latin1); Dans ce cas, mon blob contenait des caractères codés en latin1
  3. Convertir le champ actuel en type de données texte
  4. Copier le temp sur le champ actuel
  5. Supprimer la colonne temporaire

Pas tout à fait simple, mais cela a fonctionné et aucune perte de données. J'utilise Version: '5.1.50-community'

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top