2012-11-29 4 views
25

Continuo a scoprire che MySQL Workbench mostra i risultati delle query come BLOB. per esempio: SELECT INET_NTOA(167773449) ->BLOBMySQL Workbench mostra i risultati come BLOB

Se seleziono a 'valore di vista' posso determinare il valore del testo è '10 .0.5.9' ma è abbastanza irritante quando ho selezionare più righe e voglio sguardo al contenuto.

C'è un modo per aggirare questo o è una limitazione dello strumento?

risposta

46

Sfondo: Questo problema si verifica quando i valori della stringa binaria (tipo BINARY/VARBINARY) vengono restituiti nei risultati. Le stringhe binarie contengono i byte zero e per qualche motivo, apparentemente la sicurezza, non sono state mostrate di default. Ulteriori dettagli sulle stringhe binarie here.

Anche nell'esempio riportato SELECT INET_NTOA(167773449), la funzione restituisce una stringa binaria. Controllare this come riferimento.

Soluzione: Dal MySQL Workbench v5.2.22, può essere impostato attraverso le preferenze se mostrare o nascondere tali valori.

  1. In MySQL Workbench, andare a: "Modifica -> Preferenze ... ->query SQL" O "Modifica -> Preferenze ... ->SQL Editor" (a seconda su quale versione di Workbench hai).
  2. Selezionare l'opzione "Tratta BINARY/VARBINARY come stringa di caratteri non binaria" per mostrare il valore effettivo.

Riferimento: Il problema originale è stato riportato e ha risposto con correzione here.

+2

Nel Workbench 6.2, l'impostazione è sotto 'Modifica -> Preferenze -> SQL Editor -> SQL Execution' –

+0

Da qualche parte nel 6.2 o sonda si è una regressione: questo non funziona più. –

4

Quello che puoi fare è trasmettere il tuo tipo di BLOB a una stringa. Ciò ti permetterà semplicemente di dare un'occhiata a cosa è nel tuo tipo BLOB quando sfogli la tua istruzione select.

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

Soluzione eccellente per il bug del workbench! – TrogDor