web-dev-qa-db-fra.com

MySQL Workbench affiche les résultats sous forme de BLOB

Je continue de trouver que MySQL Workbench affiche les résultats de la requête sous la forme BLOB. par exemple: SELECT INET_NTOA(167773449) -> BLOB

Si je choisis de 'voir la valeur', je peux déterminer que la valeur du texte est '10 .0.5.9 'mais c'est assez irritant quand je sélectionne plusieurs lignes et que je veux jeter un coup d'œil au contenu.

Existe-t-il un moyen de contourner ce problème ou s'agit-il d'une limitation de l'outil?

27
Mr. Boy

Contexte: Ce problème se produit lorsque les valeurs de chaîne binaire (type BINARY/VARBINARY) sont renvoyées dans les résultats. Les chaînes binaires contiennent le zéro octet et pour une raison quelconque, apparemment la sécurité, n'a pas été affichée par défaut. Plus de détails sur les chaînes binaires ici .

Même dans l'exemple rapporté SELECT INET_NTOA(167773449), la fonction renvoie une chaîne binaire. Vérifiez ceci pour référence.

Solution: Depuis MySQL Workbench v5.2.22, il peut être défini par le biais de préférences pour afficher ou masquer ces valeurs.

  1. Dans MySQL Workbench, accédez à: "Édition -> Préférences ... -> Requêtes SQL " OR "Édition -> Préférences ... -> Éditeur SQL -> Exécution SQL " = (selon la version de Workbench dont vous disposez).
  2. Cochez l'option "Traiter BINARY/VARBINARY comme une chaîne de caractères non binaires" pour afficher la valeur réelle.

Référence: Le problème d'origine a été signalé et a été corrigé ici .

55
Tariq

Ce que vous pouvez faire, c'est convertir votre type BLOB en chaîne. Cela vous permettra simplement de regarder ce qui se trouve dans votre type BLOB lorsque vous parcourez votre instruction select.

SELECT CAST('blob_column' AS CHAR(10000) CHARACTER SET utf8) FROM 'DB_table';
10