4
我有一些格式为ASCII十六进制的源数据。我需要将它放到VARBINARY字段中的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 @[email protected];
我希望做的是跳过中间步骤,并调用类的方法:
EXEC BinaryDemo @BinaryData=CONVERT(varbinary, '1234567890abcdef', 2);
不幸的是,SQL抱怨语法:关键字 '转换' 附近语法不正确。
我知道CONVERT是正确的,因为我可以:
PRINT CONVERT(varbinary, '1234567890abcdef', 2);
,我看看到底是什么我的期望。由于源数据的性质和数量,第一个示例(declare/set/exec)确实是一个糟糕的选项。
**哪个版本的SQL Server **您使用的? –
可能的重复[转换整型和连接到varchar在TSQL](http://stackoverflow.com/questions/4936180/cast-integer-and-concatenate-to-varchar-in-tsql) –
@marc_s:SQL 2008R2; – BillP3rd