gpt4 book ai didi

SQL Server 字符串到 varbinary 的转换

转载 作者:行者123 更新时间:2023-12-02 05:21:29 27 4
gpt4 key购买 nike

好的,问题是需要在 2 个表上完成合并或连接。一个将文件内容存储为 [image] 类型或 varbinary(max),另一个将文件内容存储为十六进制字符串。如果我将相同的内容上传到两个表中

作为字符串(字节数组到字符串)的内容看起来像这样......

'application/vnd.xfdl;content-encoding="base64-gzip"
H4sIAAAAAAAAC+y9e1fjONI4/H9/Cg173idwFgIJl+5m6MzPJAayE+KsnXQPs8+cHJMY8HZi57ET
aObMh3918UW2Jcdyrmbg7E7HtqpUpSqVSqWSdPHLj/EIPBuOa9rWl51K+WgHGNbAHprW45edpqYc
fPp0+vmgsvNL7cPFb1eNFoDlLffLztN0Ojk/PHx5eSl3Zo4hDx+N8sAeH6Iyh2fl0x1S8Hwwc6f2'
...

作为图像的内容看起来像(这最终是我想要的样子)
0x6170706C69636174696F6E

如果我选择 convert(varbinary(MAX), @contentAsString) 我得到 0x6100700070006C00690063006100740069006F006E
看起来好像转换是在目标上,但在每个之间放置两个零 (00),由于缺少更好的词,我将其称为一个字节。

我尝试了各种论坛上发布的更复杂的方法,但都无济于事。
任何帮助,将不胜感激。

最佳答案

来自 MSDN

In SQL Server 2008, these conversions are even more easier since we added support directly in the CONVERT built-in function. The code samples below show how to perform the conversion(s):

declare @hexstring varchar(max);

set @hexstring = '0xabcedf012439';

select CONVERT(varbinary(max), @hexstring, 1);

set @hexstring = 'abcedf012439';

select CONVERT(varbinary(max), @hexstring, 2);

go

declare @hexbin varbinary(max);

set @hexbin = 0xabcedf012439;

select
CONVERT(varchar(max), @hexbin, 1),
CONVERT(varchar(max), @hexbin, 2);

go

关于SQL Server 字符串到 varbinary 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14145904/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com