varbinary to string на SQL Server - PullRequest
83 голосов
/ 20 июля 2010

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

Ответы [ 5 ]

124 голосов
/ 08 марта 2013

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

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

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

78 голосов
/ 20 июля 2010

«Преобразование varbinary в varchar» может означать разные вещи.

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

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 для различных требований, как отмечено в других ответах.

42 голосов
/ 23 июля 2015

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

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

, используя "2", обрезает "0x" в начале varbinary.

13 голосов
/ 20 июля 2010

Попробуйте это

SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)
0 голосов
/ 08 мая 2019

Для столбца VARBINARY (MAX) мне пришлось использовать NVARCHAR (MAX)

cast(Content as nvarchar(max))

Или

CONVERT(NVARCHAR(MAX), Content, 0)

VARCHAR (MAX) не показывал полное значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...