varbinary в строку на SQL Server


Как преобразовать значение столбца varbinary(max) до varchar в удобочитаемой форме?

4 70

4 ответа:

" преобразование a varbinary до varchar" может означать разные вещи.

если varbinary является двоичным представлением строки в SQL Server (например, возвращается путем приведения к varbinary непосредственно или с DecryptByPassPhrase или DECOMPRESS функции) вы можете просто CAST это

declare @b varbinary(max)
set @b = 0x5468697320697320612074657374

select cast(@b as varchar(max)) /*Returns "This is a test"*/

это эквивалент использования CONVERT с параметром стиль 0.

CONVERT(varchar(max), @b, 0)

другие параметры стиля доступны с CONVERT для различных требования, как указано в других ответах.

для меня работало следующее выражение:

SELECT CONVERT(VARCHAR(1000), varbinary_value, 2);

здесь более подробно о выборе стиля (третий параметр).

на самом деле лучший ответ

SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);

через "2" отрезает "0x" в начале varbinary.

попробуй такое

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