Comment convertir une valeur de colonne de varbinary(max)
en varchar
sous une forme lisible par l'homme?
sql
sql-server
sql-server-2005
tsql
Bilgin Kılıç
la source
la source
Réponses:
«Convertir un
varbinary
en unvarchar
» peut signifier différentes choses.Si le varbinary est la représentation binaire d'une chaîne dans SQL Server (par exemple retourné par coulée à
varbinary
directement ou à partir desDecryptByPassPhrase
ouDECOMPRESS
fonctions) , vous pouvez toutCAST
ceC'est l'équivalent de l'utilisation
CONVERT
avec un paramètre de style de0
.D'autres paramètres de style sont disponibles
CONVERT
pour différentes exigences, comme indiqué dans d'autres réponses.la source
SELECT CAST('This is a test' AS VARBINARY(100))
qui se trouve0x5468697320697320612074657374
dans mon classement par défaut et le convertit envarchar
chaîne. La réponse de Gunjan renvoie la représentation hexadécimale sous forme de chaîne ('5468697320697320612074657374'). Vraisemblablement, cette interprétation est correcte pour le besoin du PO tel qu'il l'a accepté.CONVERT
a un paramètre de style pour sélectionner la façon dont vous le souhaitez (mon interprétation est le style par défaut) .Cette réponse n'est donc peut-être pas ce dont vous avez besoin pour votre cas d'utilisation pour le moment, mais elle est correcte pour d'autres cas d'utilisation. Y compris le questionneur original qui a spécifié "forme lisible par l'homme" non hexadécimal.L'expression suivante a fonctionné pour moi:
Voici plus de détails sur le choix du style (le troisième paramètre).
la source
En fait, la meilleure réponse est
en utilisant "
2
" coupe le "0x
" au début devarbinary
.la source
Essaye ça
la source
Pour une
VARBINARY(MAX)
chronique, j'ai dû utiliserNVARCHAR(MAX)
:Ou
la source
J'ai essayé ceci, cela a fonctionné pour moi:
la source
Jetez un œil à ce qui suit car j'avais du mal à publier un message trop original [Ici] [1]
la source