将 column/variable 作为二进制值传递给转换函数
Passing column/variable as binary value to convert function
我正在处理一个大值,其中包含用 ASCII 行和列分隔符分隔的行和列值。结果是我在 SQL table 中插入的表格数据。
理解想法的简单示例:
George|20;Ivan|15;Peter|10;
转换为:
George 20
Ivan 15
Peter 10
并插入 Users ([name], [age]
) table.
在插入之前,使用 TRY_CONVERT
函数将每个值转换为其列类型。问题是这对 VARBINARY
数据没有按预期工作。例如(第二个输出是正确的):
DECLARE @A NVARCHAR(1024) = '0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB';
SELECT TRY_CONVERT(VARBINARY(255), @A)
-- 0x300078004600450035003200300036003700360042003100410031004400390033004400410042004100420032003300310039004500450041003000330036003700340046003300360033003200450041004500450042003100360033004400310045003800380032003400340046003500450042003100440045003100300045004200
SELECT TRY_CONVERT(VARBINARY(255), 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB)
-- 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB
当 VARBINARY
数据作为字符串传递时,字符串将自身转换为 VARBINARY
。我需要传递不带引号的数据,但是当传递 column/variable 类型的字符串时如何做到这一点?
我需要使用 TRY_CONVERT 函数的 style
选项。
DECLARE @A NVARCHAR(1024) = '0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB';
-- using style option 1
SELECT TRY_CONVERT(VARBINARY(255), @A, 1)
SELECT TRY_CONVERT(VARBINARY(255), 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB)
我正在处理一个大值,其中包含用 ASCII 行和列分隔符分隔的行和列值。结果是我在 SQL table 中插入的表格数据。
理解想法的简单示例:
George|20;Ivan|15;Peter|10;
转换为:
George 20
Ivan 15
Peter 10
并插入 Users ([name], [age]
) table.
在插入之前,使用 TRY_CONVERT
函数将每个值转换为其列类型。问题是这对 VARBINARY
数据没有按预期工作。例如(第二个输出是正确的):
DECLARE @A NVARCHAR(1024) = '0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB';
SELECT TRY_CONVERT(VARBINARY(255), @A)
-- 0x300078004600450035003200300036003700360042003100410031004400390033004400410042004100420032003300310039004500450041003000330036003700340046003300360033003200450041004500450042003100360033004400310045003800380032003400340046003500450042003100440045003100300045004200
SELECT TRY_CONVERT(VARBINARY(255), 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB)
-- 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB
当 VARBINARY
数据作为字符串传递时,字符串将自身转换为 VARBINARY
。我需要传递不带引号的数据,但是当传递 column/variable 类型的字符串时如何做到这一点?
我需要使用 TRY_CONVERT 函数的 style
选项。
DECLARE @A NVARCHAR(1024) = '0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB';
-- using style option 1
SELECT TRY_CONVERT(VARBINARY(255), @A, 1)
SELECT TRY_CONVERT(VARBINARY(255), 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB)