web-dev-qa-db-fra.com

varbinary à string sur SQL Server

Comment convertir une valeur de colonne de varbinary(max) en varchar sous une forme lisible par l'homme?

83
Bilgin Kılıç

"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.

78
Martin Smith

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).

128
Gunjan Juyal

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.

49
Lara Mayugba

Essaye ça

SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)
13
dmajkic

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

0
kristoffer_o