Sql server 将列/变量作为二进制值传递给转换函数
我正在处理一个大值,其中包含用ASCII行和列分隔符分隔的行和列值。结果是我正在SQL表中插入的表格数据 获得此想法的简单示例:Sql server 将列/变量作为二进制值传递给转换函数,sql-server,tsql,sql-server-2012,varbinary,Sql Server,Tsql,Sql Server 2012,Varbinary,我正在处理一个大值,其中包含用ASCII行和列分隔符分隔的行和列值。结果是我正在SQL表中插入的表格数据 获得此想法的简单示例: George|20;Ivan|15;Peter|10; 转换为: George 20 Ivan 15 Peter 10 并插入到用户([姓名],[年龄])表中 在插入之前,使用TRY\u CONVERT函数将每个值转换为其列类型。问题在于,对于VARBINARY数据,这并不像预期的那样有效。例如(第二个输出是正确的): 当VARBINARY数据作为字符串传递
George|20;Ivan|15;Peter|10;
转换为:
George 20
Ivan 15
Peter 10
并插入到用户([姓名],[年龄]
)表中
在插入之前,使用TRY\u CONVERT
函数将每个值转换为其列类型。问题在于,对于VARBINARY
数据,这并不像预期的那样有效。例如(第二个输出是正确的):
当
VARBINARY
数据作为字符串传递时,字符串将自身转换为VARBINARY
。我需要传递不带引号的数据,但是当传递字符串类型的列/变量时,如何进行此操作 我需要使用函数的样式
选项
DECLARE @A NVARCHAR(1024) = '0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB';
-- using style option 1
SELECT TRY_CONVERT(VARBINARY(255), @A, 1)
SELECT TRY_CONVERT(VARBINARY(255), 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB)
您在几秒钟前找到并发布了答案:)我将删除我的答案,开始投票!
DECLARE @A NVARCHAR(1024) = '0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB';
-- using style option 1
SELECT TRY_CONVERT(VARBINARY(255), @A, 1)
SELECT TRY_CONVERT(VARBINARY(255), 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB)