Joh*_*ohn 16 sql-server sql-server-2000
当我运行SQL查询时,我得到这样的东西:
不允许从数据类型varchar到数据类型varbinary的隐式转换....使用CONVERT函数运行此查询.(严重性16)`
我要插入的数据看起来像
'00001200000000000010000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF...FFF'
Run Code Online (Sandbox Code Playgroud)
怎么做这个查询?
查询看起来像:
UPDATE <table> SET VARBINARY_DATA = '00001200000000000010000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF....' WHERE ID = 12
Run Code Online (Sandbox Code Playgroud)
Ben*_*Ben 45
从SQL Server 2005开始,CONVERT可以满足您的需求:
CONVERT(varbinary(2000), '00001340132401324...', 2)
Run Code Online (Sandbox Code Playgroud)
转换为/从二进制转换的样式是:
要将字符转换为格式为0的二进制:
char或varchar数据(例如ASCII,ISO-8859-1)成为二进制字节.对于单字符编码,这意味着每个字符一个字节.nchar或者nvarchar数据(即UTF-16)每个变成两个字节,采用大端格式,因此N'ABC'变为0x410042004300要将格式1和2中的十六进制转换为二进制:
请参阅MSDN:
如果您需要UTF-8,请在此处查看我的答案,以获取将文本转换为UTF-8的UDF: