Cómo convertir un valor de columna de varbinary(max) a varcharen forma legible por humanos?
Cómo convertir un valor de columna de varbinary(max) a varcharen forma legible por humanos?
Respuestas:
"Convertir a en varbinarya varchar" puede significar cosas diferentes.
Si varbinary es la representación binaria de una cadena en SQL Server (por ejemplo, devuelta al convertir varbinarydirectamente o desde las funciones DecryptByPassPhraseo DECOMPRESS), puede CASThacerlo
declare @b varbinary(max)
set @b = 0x5468697320697320612074657374
select cast(@b as varchar(max)) /*Returns "This is a test"*/
Este es el equivalente a usar CONVERTcon un parámetro de estilo de 0.
CONVERT(varchar(max), @b, 0)
Hay otros parámetros de estilo disponibles CONVERTpara diferentes requisitos, como se indica en otras respuestas.
SELECT CAST('This is a test' AS VARBINARY(100))que está 0x5468697320697320612074657374en mi intercalación predeterminada y la convierte de nuevo en la varcharcadena. 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.
CONVERTtiene 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í:
SELECT CONVERT(VARCHAR(1000), varbinary_value, 2);
Aquí hay más detalles sobre la elección del estilo (el tercer parámetro).
En realidad, la mejor respuesta es
SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);
el uso de " 2" corta el " 0x" al comienzo del varbinary.
Prueba esto
SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)
Para una VARBINARY(MAX)columna, tuve que usar NVARCHAR(MAX):
cast(Content as nvarchar(max))
O
CONVERT(NVARCHAR(MAX), Content, 0)
VARCHAR(MAX) didn't show the entire value
Prueba lo siguiente, ya que estaba luchando con una publicación demasiado original [Aquí] [1]
bcp "SELECT CAST(BINARYCOL AS VARCHAR(MAX)) FROM OLTP_TABLE WHERE ID=123123 AND COMPANYID=123"
queryout "C:\Users\USER\Documents\ps_scripts\res.txt" -c -S myserver.db.com -U admin -P password
[1]: https://stackoverflow.com/questions/60525910/powershell-truncating-sql-query-output?noredirect=1#comment107077512_60525910