Comment convertir une valeur de colonne de varbinary(max)
en varchar
sous une forme lisible par l'homme?
"Convertir un varbinary
en un varchar
" peut signifier différentes choses.
Si varbinary est la représentation binaire d'une chaîne dans SQL Server (par exemple, renvoyée par transtypage vers varbinary
directement ou à partir des fonctions DecryptByPassPhrase
ou DECOMPRESS
, vous pouvez simplement CAST
it
declare @b varbinary(max)
set @b = 0x5468697320697320612074657374
select cast(@b as varchar(max)) /*Returns "This is a test"*/
Ceci équivaut à utiliser CONVERT
avec un paramètre de style de 0
.
CONVERT(varchar(max), @b, 0)
D'autres paramètres de style sont disponibles avec CONVERT
pour différentes exigences, comme indiqué dans d'autres réponses.
L'expression suivante a fonctionné pour moi:
SELECT CONVERT(VARCHAR(1000), varbinary_value, 2);
Ici plus de détails sur le choix du style (le troisième paramètre).
En fait, la meilleure réponse est
SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);
en utilisant "2
"coupe le" 0x
"au début du varbinary
.
Essaye ça
SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)
Pour une colonne VARBINARY (MAX), je devais utiliser NVARCHAR (MAX)
cast(Content as nvarchar(max))
Ou
CONVERT(NVARCHAR(MAX), Content, 0)
VARCHAR (MAX) n'a pas montré la valeur entière