Я использую SQL Server 2000 для печати некоторых значений из таблицы с использованием PRINT
. С большинством данных, отличных от строки, я могу использовать nvarchar для печати, но двоичные значения пытаются преобразовать, используя бит-представление символов. Например:Как я могу напечатать двоичное значение как hex в TSQL?
DECLARE @binvalue binary(4)
SET @binvalue = 0x12345678
PRINT CAST(@binvalue AS nvarchar)
Ожидаемое:
0x12345678
Вместо этого, он печатает две тарабарщина символов.
Как распечатать значение двоичных данных? Есть ли встроенный или мне нужно катиться самостоятельно?
Обновление: Это не единственное значение в строке, поэтому я не могу просто PRINT @binvalue. Это нечто большее, чем PRINT N'other stuff '+ ???? + N'more stuff '. Не уверен, что это имеет значение: я не пробовал просто PRINT @binvalue сам по себе.
Но что, если мне нужно больше, чем просто двоичные данные о линия? Что делать, если мне нужно напечатанное значение в строковой переменной? Я уже знаю, что кастинг не работает. – Tadmas 2008-09-16 02:28:09
См. Дополнительную информацию в ответе. – 2008-09-26 01:03:06
В ролях не поддерживается аргумент «style» (= 1), например convert(). См. «Бинарные стили» для [Sql Server 2012] (http://msdn.microsoft.com/en-us/library/ms187928.aspx). Например. print convert (varchar (max), 0x61, 1) работает. – crokusek 2014-08-20 19:57:08