转换,我需要一个查询,将在VARBINARY找到一个字符串的一部分,并删除在字符串使用替换并与VARBINARY
例如我的表dbo.inventory_table已列CharacterIdx和数据的请求的一部分。 数据是目标列包含VARBINARY所以characteridx 101756数据是这样的
0x2105000000000000430000000000000000003C090000000000002C0100000200000000F83D09000000000000580200000400000000F83E09000000000000E80300000600000000F8
我希望查询以查找并删除
3C090000000000002C0100000200000000F83D09000000000000580200000400000000F83E09000000000000E80300000600000000F8
,但留下
0x210500000000000043000000000000000000
其中CharacterIdx = 101756
我试过
UPDATE [dbo].[Inventory_table]
SET Data = REPLACE(Data, '3C090000000000002C0100000200000000F83D09000000000000580200000400000000F83E09000000000000E80300000600000000F8', '')
WHERE CharacterIdx = 101756
但它给我一个错误:
Msg 257, Level 16, State 3, Line 3
Implicit conversion from data type varchar to varbinary is not allowed.
Use the CONVERT function to run this query.
我需要的字符串,虽然仍然VARBINARY。
作为REPLACE'的'第二个参数,使用'0x',而不是'“”'。你也不应该把第一个参数放在引号之间;代替这个,用“0x”作为前缀。 http://stackoverflow.com/questions/24494778/how-to-perform-a-replace-on-varbinary-data-in-sql – 2014-10-06 22:32:44
那些'000000'也可能会导致你的问题。因为这是一个NULL字符。你可能需要'COLLATE Latin1_General_100_BIN2' – 2014-10-06 22:50:11