Wie konvertiere ich einen Spaltenwert von varbinary(max)
in varchar
in lesbare Form?
sql
sql-server
sql-server-2005
tsql
Bilgin Kılıç
quelle
quelle
Antworten:
„Eine Konvertierung
varbinary
auf einvarchar
“ kann verschiedene Dinge bedeuten.Wenn die Varbinary die binäre Darstellung einer Zeichenfolge in SQL Server ist (z. B. durch Casting
varbinary
direkt oder von den FunktionenDecryptByPassPhrase
oder zurückgegebenDECOMPRESS
), können Sie dies einfachCAST
tunDies entspricht der Verwendung
CONVERT
mit einem Stilparameter von0
.Andere Stilparameter sind
CONVERT
für unterschiedliche Anforderungen verfügbar, wie in anderen Antworten angegeben.quelle
SELECT CAST('This is a test' AS VARBINARY(100))
die0x5468697320697320612074657374
in meiner Standardsortierung und wandelt sie in den Rückenvarchar
String. Gunjans Antwort gibt die hexadezimale Darstellung als Zeichenfolge zurück ('5468697320697320612074657374'). Vermutlich ist diese Interpretation für die Bedürfnisse des OP korrekt, da sie sie akzeptiert haben.CONVERT
gibt es einen Stilparameter, mit dem Sie auswählen können, wie Sie möchten (meine Interpretation ist der Standardstil). Daher ist diese Antwort im Moment möglicherweise nicht das, was Sie für Ihren Anwendungsfall benötigen, aber für andere Anwendungsfälle korrekt. Einschließlich der ursprünglichen Fragesteller, die "vom Menschen lesbare Form" angegeben haben, nicht hexadezimal.Der folgende Ausdruck hat bei mir funktioniert:
Hier finden Sie weitere Details zur Stilauswahl (der dritte Parameter).
quelle
Eigentlich ist die beste Antwort
mit "
2
" wird das "0x
" am Anfang des abgeschnittenvarbinary
.quelle
Versuche dies
quelle
Für eine
VARBINARY(MAX)
Kolumne musste ich verwendenNVARCHAR(MAX)
:Oder
quelle
Ich habe es versucht, es hat bei mir funktioniert:
quelle
Probieren Sie es unten aus, da ich mit einem zu originellen Beitrag zu kämpfen hatte. [Hier] [1]
quelle