好的,问题是需要对 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)
I get 0x6100700070006C00690063006100740069006F006E
看起来好像转换已达到目标,但在每个转换之间放置两个零(00),由于缺乏更好的词,我将其称为字节。
我尝试过论坛上发布的各种更复杂的方法,但无济于事。
任何帮助,将不胜感激。
From MSDN
在 SQL Server 2008 中,这些转换更加容易,因为我们
直接在 CONVERT 内置函数中添加支持。代码
下面的示例显示了如何执行转换:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)