将列/变量作为二进制值传递以转换函数

时间:2016-05-23 08:05:40

标签: sql-server tsql sql-server-2012 varbinary

我正在操作包含用ASCII行和列分隔符分隔的行和列值的大值。结果是我在SQL表中插入的表格数据。

获得想法的简单例子:

George|20;Ivan|15;Peter|10;

转换为:

George 20
Ivan   15
Peter  10

并插入Users ([name], [age])表。

在插入之前,使用TRY_CONVERT函数将每个值转换为其列类型。问题是这与VARBINARY数据无法正常工作。例如(第二个输出是正确的):

DECLARE @A NVARCHAR(1024) = '0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB';

SELECT TRY_CONVERT(VARBINARY(255), @A) 
-- 0x300078004600450035003200300036003700360042003100410031004400390033004400410042004100420032003300310039004500450041003000330036003700340046003300360033003200450041004500450042003100360033004400310045003800380032003400340046003500450042003100440045003100300045004200

SELECT TRY_CONVERT(VARBINARY(255), 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB)   
-- 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB

VARBINARY数据作为字符串传递时,字符串将自身转换为VARBINARY。我需要传递没有引号的数据,但是当传递string类型的列/变量时如何执行此操作?

1 个答案:

答案 0 :(得分:1)

我需要使用TRY_CONVERT函数的$data['schedule'][0]['TimeFrom']; 选项。

style