Как преобразовать значение столбца из varbinary(max)
в varchar
в удобочитаемую форму?
Varbinary to string на SQL Server
Ответ 1
"Преобразование 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
для различных требований, как отмечено в других ответах.
Ответ 2
Для меня работало следующее выражение:
SELECT CONVERT(VARCHAR(1000), varbinary_value, 2);
Здесь более подробная информация о выборе стиля (третий параметр).
Ответ 3
На самом деле лучшим ответом является
SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);
используя "2
", отключает "0x
" в начале varbinary
.
Ответ 4
Попробуйте это
SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)
Ответ 5
Для столбца VARBINARY(MAX)
мне пришлось использовать NVARCHAR(MAX)
:
cast(Content as nvarchar(max))
Или
CONVERT(NVARCHAR(MAX), Content, 0)
VARCHAR(MAX) didn't show the entire value
Ответ 6
Я попробовал это, у меня это сработало:
declare @b2 VARBINARY(MAX)
set @b2 = 0x54006800690073002000690073002000610020007400650073007400
SELECT CONVERT(nVARCHAR(1000), @b2, 0);