读书人

sql文中 对二进制字段开展位运算

发布时间: 2013-02-25 10:23:36 作者: rapoo

sql文中 对二进制字段进行位运算
数据库中执行二进制字段的或运算

CONVERT(BINARY(16),TD_TM_PRO_STS,2) | 3458764513820540928

(3458764513820540928 是0x00000300000000000000000000000000的十进制数)

只是想把TD_TM_PRO_STS字段的第三个字节更新成03其他不变,sql文中“|”运算的右操作数
只能为 ‘int’、‘smallint’ 或 ‘tinyint’型,3458764513820540928超出范围。

左右操作数都是 BINARY是非法的。

有没有什么好的办法。


[解决办法]

select sys.fn_MSorbitmaps(0xAABB00CC, 0x000003) --0xAABB03CC

[解决办法]
我用sql promot搞出来代码了。

create function sys.fn_MSorbitmaps (@bm1 varbinary(128), @bm2 varbinary(128))
returns varbinary(128)
as
begin

declare @bm3 varbinary(128)
exec sys.xp_ORbitmap @bm1,@bm2,@bm3 output
return @bm3

end
GO

读书人网 >SQL Server

热点推荐