У меня есть некоторые исходные данные, отформатированные в шестнадцатеричном формате ASCII.Мне нужно получить его в базу данных SQL в полях VARBINARY.Я сократил проблему до минимума, чтобы проиллюстрировать, что я хотел бы сделать.У меня есть хранимая процедура:
CREATE PROCEDURE BinaryDemo
@BinaryData varbinary(max)
AS
BEGIN
PRINT @BinaryData;
END
Я знаю, что она "работает", потому что я могу сделать:
DECLARE @tmp varbinary(max);
SET @tmp = CONVERT(varbinary, '1234567890abcdef', 2);
EXEC BinaryDemo @BinaryData=@tmp;
Что я хотел бы сделать, это пропустить промежуточные шаги и вызватьпроцедура вроде:
EXEC BinaryDemo @BinaryData=CONVERT(varbinary, '1234567890abcdef', 2);
К сожалению, SQL жалуется на синтаксис: Неверный синтаксис рядом с ключевым словом «CONVERT».
Я знаю, что CONVERT верный, потому чтоЯ могу:
PRINT CONVERT(varbinary, '1234567890abcdef', 2);
и я вижу именно то, что ожидаю.Первый пример (Declare / Set / Exec) действительно плохой вариант из-за характера и количества исходных данных.