Come convertire un valore di colonna da varbinary(max)
a varchar
in formato leggibile dall'uomo?varbinary su stringa su SQL Server
risposta
"Conversione di un varbinary
ad un varchar
" può significare cose diverse.
Se il varbinary è la rappresentazione binaria di una stringa in SQL Server (ad esempio restituito da colata a varbinary
direttamente o dai DecryptByPassPhrase
o DECOMPRESS
funzioni) si può semplicemente CAST
si
declare @b varbinary(max)
set @b = 0x5468697320697320612074657374
select cast(@b as varchar(max)) /*Returns "This is a test"*/
Questo è l'equivalente di utilizzare CONVERT
con un parametro di stile 0
.
CONVERT(varchar(max), @b, 0)
Altri parametri di stile sono disponibili con CONVERT
per le diverse esigenze, come già sottolineato in altre risposte.
QUESTA RISPOSTA NON È CORRETTA. L'ho testato su una tabella con SID utente: l'ammontare dei valori di Distinct cast è inferiore alla quantità di SID binari distinti. Dovresti usare CONVERT (VARCHAR (...), binaryValue, 2) per ottenere un valore univoco - la risposta di Gunjan Juyal è quella giusta - dovrebbe essere contrassegnata come soluzione –
@PhilippMunin - Le due risposte fanno cose diverse. Questo prende il risultato di un'espressione come 'SELECT CAST ('Questo è un test' AS VARBINARY (100))' che è '0x5468697320697320612074657374' nelle mie regole di confronto predefinite e lo converte nuovamente nella stringa' varchar'. La risposta di Gunjan restituisce la rappresentazione esadecimale come una stringa ('5468697320697320612074657374') Presumibilmente questa interpretazione è corretta per le necessità dell'OP in quanto l'hanno accettata. –
QUESTA RISPOSTA È CORRETTA! L'ho provato e fa quello che io e l'OP desideriamo. –
Prova questa
SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)
La seguente espressione ha lavorato per me:
SELECT CONVERT(VARCHAR(1000), varbinary_value, 2);
Here sono ulteriori dettagli sulla scelta di stile (il terzo parametro).
In realtà la risposta migliore è
SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);
utilizzando "2
" taglia fuori il "0x
" all'inizio della varbinary
.
questo lavoro per me – Jozcar
- 1. Lunghezza del filestream varbinary (max) su SQL Server 2008
- 2. SQL Server 2008 R2 Dimensione massima varbinary
- 3. SQL Server ROW_NUMBER() su SQL Server 2000?
- 4. EAV su SQL Server
- 5. SQL Server: varbinary o int per memorizzare una maschera bit?
- 6. Valore del campo concatenato su stringa in SQL Server
- 7. Commenti SQL su Crea tabella su SQL Server 2008
- 8. Cosa monitorare su SQL Server
- 9. SQL Server Varbinary (max): selezionare un sottoinsieme di byte dal campo varbinary
- 10. Leggi VARBINARY (MAX) da SQL Server a C#
- 11. SQL Server varbinary bigint con i valori BitConverter.ToInt64 sono diversi
- 12. Recupera varbinary (MAX) da SQL Server a byte [] in C#
- 13. SQL Server varbinary (max) a Immagine tipo di dati
- 14. Change Data tipo varchar Per varbinary (max) In SQL Server
- 15. Dimensioni del campo VARBINARY in SQL Server 2005
- 16. la conversione dei dati di SQL Server varbinary in stringa C#
- 17. confronto stringa server sql
- 18. Informazioni su LOCKS di SQL Server su query SELECT
- 19. Esecuzione di SQL Server su EC2
- 20. confusione su SQL Server Express e LocalDB
- 21. Indice chiave univoco su SQL Server 2008
- 22. Rileva modifiche su una tabella sql-server
- 23. Query su più database (server SQL)
- 24. Alcune domande su HierarchyId (SQL Server 2008)
- 25. Crea backup server SQL su macchina locale
- 26. Come installare fulltext su SQL Server 2008?
- 27. Intermittente query lenta su SQL Server 2008
- 28. Handle C# su SQL Server Output messaggio
- 29. SQL Server 2008 Dati verticali su orizzontale
- 30. Come si introspe su un server SQL?
voglio varchar poiché il valore è stato stabilito dal valore di stringa .. Voglio leggere quello che è stato scritto .. – theklc