Cómo convertir un valor de columna de varbinary(max)
a varchar
en forma legible por humanos?
sql
sql-server
sql-server-2005
tsql
Bilgin Kılıç
fuente
fuente
Respuestas:
"Convertir a en
varbinary
avarchar
" puede significar cosas diferentes.Si varbinary es la representación binaria de una cadena en SQL Server (por ejemplo, devuelta al convertir
varbinary
directamente o desde las funcionesDecryptByPassPhrase
oDECOMPRESS
), puedeCAST
hacerloEste es el equivalente a usar
CONVERT
con un parámetro de estilo de0
.Hay otros parámetros de estilo disponibles
CONVERT
para diferentes requisitos, como se indica en otras respuestas.fuente
SELECT CAST('This is a test' AS VARBINARY(100))
que está0x5468697320697320612074657374
en mi intercalación predeterminada y la convierte de nuevo en lavarchar
cadena. La respuesta de Gunjan devuelve la representación hexadecimal como una cadena ('5468697320697320612074657374') Presumiblemente, esta interpretación es correcta para la necesidad del OP, ya que la aceptaron.CONVERT
tiene un parámetro de estilo para seleccionar la forma que desee (mi interpretación es el estilo predeterminado) .Por lo tanto, esta respuesta puede no ser la que necesita para su caso de uso en este momento, pero es correcta para otros casos de uso. Incluyendo el interrogador original que especificó "forma legible por humanos" no hexadecimal.La siguiente expresión funcionó para mí:
Aquí hay más detalles sobre la elección del estilo (el tercer parámetro).
fuente
En realidad, la mejor respuesta es
el uso de "
2
" corta el "0x
" al comienzo delvarbinary
.fuente
Prueba esto
fuente
Para una
VARBINARY(MAX)
columna, tuve que usarNVARCHAR(MAX)
:O
fuente
Intenté esto, funcionó para mí:
fuente
Prueba lo siguiente, ya que estaba luchando con una publicación demasiado original [Aquí] [1]
fuente